You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Blade中如何将关联值下拉框转换为Form::类写法

Laravel Blade 原生select转Form门面写法

你原来遍历关联模型生成下拉选项的逻辑,不需要手动写foreach循环,直接用集合的pluck()方法提前整理好选项键值对,传入Form::select()方法即可。

转换后代码

{{ Form::select(
    'department',
    $managers->pluck('user.name', 'user.id')->toArray(),
    old('department', null),
    ['class' => 'form-control']
) }}

参数说明

  • 第一个参数:对应原生select的name属性值,这里就是department
  • 第二个参数:下拉选项的键值对数组,用集合的pluck()方法直接提取关联数据:
    • 第一个传参user.name对应option的显示文本,也就是你原来写的{{$manager->user->name}}
    • 第二个传参user.id对应option的value值,也就是你原来写的{{$manager->user->id}}
    • 调用toArray()把集合转成普通数组传给select组件,完全替代手写foreach遍历的逻辑
  • 第三个参数:默认选中值,这里用old('department', null)可以自动回显表单验证失败后的旧值,没有旧值时默认不选中任何项;如果需要绑定模型的默认值,把第二个默认参数改成对应字段值即可,组件会自动给匹配的option加上selected属性,不需要手动写判断
  • 第四个参数:select标签的附加HTML属性数组,你可以按需加id、required、自定义样式类等属性,比如传['id' => 'dept-select', 'required' => 'required']就会自动生成对应的标签属性,不需要额外属性时传空数组即可

前置说明

Laravel 5.8之后的版本默认移除了Form门面,如果你调用时报类不存在的错误,先安装对应依赖包即可,安装命令:

composer require laravelcollective/html

内容的提问来源于stack exchange,提问作者HarLton Hinon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 08:06:19