Laravel 5.3选择采摘方法

时间:2017-01-26 09:35:31

标签: php laravel pluck

控制器方法:

public function edit($id){

    $match2 = Match::pluck('team_a_id', 'id');
    return view('admin.accept.edit', compact('match2'));

}

并查看文件:

{{ Form::select('matches_id', $match2, null, ['class' => 'form-control']) }}

我的桌子:

模型Match中的表(表名:匹配):

enter image description here

来自模型Team的表格(表格名称:团队):

enter image description here

teams与表matchesteam_a_id连接(引用),team_b_id与表teams连接。使用select的{​​{1}}方法只返回view表格:

enter image description here

我需要IDteam_name而不是teams。 当我改变方法采摘时:

id

并查看:

$match2 = Match::pluck('id', 'id');

Laravel返回错误:

  

为foreach()提供的参数无效(查看:   C:\ XAMPP \ htdocs中\足球\足球\资源\视图\管理员\接受\ edit.blade.php)

这是metohd编辑所以我必须突出显示之前选择的记录。

2 个答案:

答案 0 :(得分:0)

试试这个$ match2 = Match :: pluck('team_a_id','id') - > toArray()

答案 1 :(得分:0)

好的我修好了。我写方法:

public function edit($id){

    $match = Match::select()->orderBy('updated_at', 'asc')->get();
    $selectedMatch = DB::table('usermatches')->find($id)->matches_id;

    return view('admin.accept.edit', compact('match', 'selectedMatch'));

}

并查看:

  <select name="matches_id" id="matches_id" class="form-control selectpicker" data-live-search="true" data-size="5">
    <option value=0>Wybierz wydarzenie</option>
      @foreach($match as $role)
          <option value="{{ $role->id }}" {{ $selectedMatch == $role->id ? 'selected="selected"' : '' }}>
            {{ Team::find($role->team_a_id)->team_name }} vs. {{ Team::find($role->team_b_id)->team_name }} ({{$role->date}}; <?php echo date('G:i',strtotime($role->time)); ?> | Liga {{ League::find($role->league_id)->name }} | {{ Sport::find($role->sport_id)->name }}) 
          </option>  
      @endforeach
  </select>

在模型视图中,我将id与两个表进行比较并且它正常工作;)

{{ $selectedMatch == $role->id ? 'selected="selected"' : '' }}