【问题标题】:Laravel : how to explode and showing multiple data in select2Laravel:如何在 select2 中分解和显示多个数据
【发布时间】:2020-08-02 12:20:17
【问题描述】:

我正在使用 select2,我想在编辑页面中显示来自数据库的多个数据

@foreach( $userLanguages as $userLanguageTitle)
 <option value="{{$user->languages}}">{{$userLanguageTitle}}</option>
@endforeach

但给我看

<select name="languages[]" class="select2 form-control" multiple="multiple" required>                                                                                                                   
<option value="English,Persian,German" >English</option>                                                                                                                
<option value="English,Persian,German" >Persian</option>                                                                                                               
<option value="English,Persian,German" >French</option>                                                                                                                
<option value="English,Persian,German" >German</option>                                                                                                                
<option value="English,Persian,German" >Spanish</option>                                                                                                                
<option value="English,Persian,German" >Turkish</option>                                                                                                   
<option value="English,Persian,German" >Italian</option>
</select>

我想在元素中显示选定的数据,如下例所示

<select name="languages[]" class="select2 form-control" multiple="multiple" required>                                                                                                                   
<option value="English" selected >English</option>                                                                                                                
<option value="Persian" selected >Persian</option>                                                                                                               
<option value="French">French</option>                                                                                                                
<option value="German" selected >German</option>                                                                                                                
<option value="Spanish" >Spanish</option>                                                                                                                
<option value="Turkish" >Turkish</option>                                                                                                   
<option value="Italian" >Italian</option>
</select>

型号

public static function getUserlanguages()
{
    return [
        self::ENGLISH => 'English',
        self::PERSIAN => 'Persian',
        self::FRENCH => 'French',
        self::GERMAN => 'German',
        self::SPANISH => 'Spanish',
        self::TURKISH => 'Turkish',
        self::ITALIAN => 'Italian',
    ];
}

控制器

public function edit(Request $request, $id)
{
    $user = User::findOrFail($id);
    $userLanguages = User::getUserlanguages();
    return view('backend.users.edit', compact('user', 'userLanguages',));
}

【问题讨论】:

  • 你能展示一下控制器和dd($userLanguage)吗​​?
  • 这没有任何意义,你指的是同一个变量并得到两个不同的输出。我的预感是 select2 有问题。
  • @Aless55 已编辑请再次检查

标签: laravel jquery-select2


【解决方案1】:

试试这个,假设$user-&gt;languagesUser 模型中的一个关系,并且languages 表中有name

@foreach($userLanguages as $userLanguageTitle)
 <option value="{{$userLanguageTitle}}" {{ (in_array($userLanguageTitle, $user->languages()->pluck('name')->toArray()) ? 'selected' : '') }}>{{$userLanguageTitle}}</option>
@endforeach

【讨论】:

    【解决方案2】:

    &lt;option value="{{$user-&gt;languages}}"&gt;{{$userLanguageTitle}}&lt;/option&gt;

    由于您编辑了上面的代码,我假设$user-&gt;languages 返回一个用户的所有语言。所以它返回一个集合或一个数组,但不是单个语言项。所以你可以简单地使用value="{{$userLanguageTitle}}" 来显示语言的名称,或者像这样使用它的键:

    @foreach( $userLanguages as $key => $userLanguageTitle)
     <option value="{{$key}}">{{$userLanguageTitle}}</option>
    @endforeach
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 2021-07-19
      • 2021-03-25
      相关资源
      最近更新 更多