首页 > 解决方案 > 如何在 Laravel 5.6 中使用 Form::Select 和数据透视表

问题描述

我尝试在 Laravel 5.6 中使用 Form::select,但是当我进入编辑页面时,在选择中,有对象模型的所有数据而不是常规字段的选项。

我有一个游戏模型,它的关系是多对多和标签模型。

在我的游戏控制器编辑功能中

public function edit($item)
{        
    $tags  = Tag::all();
    return view('megadmin.games.edit', compact('item', 'tags'));
}

在我的表单刀片中:

 {!! Form::select('tags', $tags, array_pluck($tags, 'id_tag','name'), ['class' => 'form-control'])!!}

结果如下:

结果

我只想要一个带有数据的普通选择/选项,并且我想在游戏表单中检索与游戏关联的模型标签。

谢谢你的帮助^^

标签: laravelformsselectpivot-table

解决方案


控制器

public function edit($item)
{        
    $tags  = Tag::all();
    $goodTag = $item->tags()->first()->id; 
     //here assuming `$item` is your Game object and 
    //you have ManyToMany relation with tags with `tags` function in game model 
   //lots of assuming

    return view('megadmin.games.edit', compact('item', 'tags', 'goodTag));
}

看法

 {!! Form::select('tags', array_pluck($tags,'name', 'id_tag'), $goodTag, ['class' => 'form-control'])!!}

这里是laravel表单选择源码https://github.com/illuminate/html/blob/master/FormBuilder.php#L393

array_pluck https://laravel.com/docs/5.6/helpers#method-array-pluck


推荐阅读