laravel - 如何在 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'])!!}
结果如下:
我只想要一个带有数据的普通选择/选项,并且我想在游戏表单中检索与游戏关联的模型标签。
谢谢你的帮助^^
解决方案
控制器
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
推荐阅读
- c# - 如何摆脱 try/catch 并改进 C# 查询?
- python - 如何使用自定义构建的 REST API 来验证气流网络服务器登录?
- kube-proxy - 使用外部 ipon kubernetes 公开服务成功,但节点上没有 ip
- javascript - 从数组中为 NodeJS 中的 SSL 加密常量构建按位 OR 字符串
- python - 未找到 PyTorch 桶迭代器
- python - 由 cx_Freeze 制作的 Tkinter exe 在快捷方式文件夹中找不到 png 文件
- github - GitHub GraphQL 不断返回 POST https://api.github.com/graphql 401 错误
- openstreetmap - Photon OSM 仅作为结果返回城市
- python - SpaCy 3 交叉验证
- visual-studio-code - VS Code,ColdFusion,评论快捷方式产生错误评论