Backpack select_from_array options填充报错,求DB查询正确写法
问题解决
错误原因
options()方法要求接收数组类型参数,你传入了闭包函数,导致类型不匹配触发报错;- 查询语句里的
value()方法仅能获取单个字段值,无法生成下拉选项需要的键值对数组,需改用pluck()方法。
正确代码
CRUD::column('form_trx') ->type('select_from_array') ->options( DB::table('lookups') ->where('type_lookup', 'form_trx') ->pluck('value_display', 'value_store') ->toArray() );
代码说明
- 直接执行数据库查询并将结果数组传给
options(),规避闭包导致的类型错误; pluck('value_display', 'value_store')会生成以value_store为键、value_display为值的关联数组,完全匹配下拉选项「存储值-显示值」的需求,最后转成普通数组即可直接使用。
内容的提问来源于stack exchange,提问作者Andover Beacon
相关产品推荐
相关产品推荐

