按照官方文档给 multipleSelectTable options 设置自定义内容始终无效,研究了底层代码,才发现需要和value匹配,才能正常显示。
$form->multipleSelectTable('company_ids', '出品方') ->title('选择出品方') ->from(ProductionCompanyTable::make(['id' => $form->getKey()])) ->value(function(){ return '1,2,3'; //注意:此处返回option里的key值才能正常加载options方法中返回的内容!!此处的字符串主要是显示在前端hidden元素中, 用于表单提交参数用的,所以必须返回。 }) ->options() { return [1 => '选项A', 2 => '选项B', 3 => '选项C']; //需要加载时显示的选项,key与上面value()中的值对应,如果value中不存在options()中的某个key,则该key对应的选项不会显示出来。 } } return []; });
底层SelectTable处理option的主要逻辑: