把展示出来的数据集合转化为左侧的名字,我内置的addtion搞不太懂,就用了笨方法,希望能帮到大家
1.控制器
foreach($list as &$item){
$item->enzd = $item->enzd;
}
2.模型
public function getEnzdAttr($value, $data)
{
$enzdArr =Db::name("user")->where("id", "in", $data["teacher_id"]) ->column('nickname');
return implode(",", $enzdArr);
}
3.js
{field: 'enzd', title: __('负责老师'), operate:false,formatter: Table.api.formatter.label},
3里面的enzd对应的是1里面的enzd 这里有个坑,大部分攻略里面写的都不对应
附带在edit和add时多选的html代码,这个不需要修改js和控制器
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('负责老师')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-teacher_id" data-rule="required" data-source="user_staff/index"
data-primary-key="id" data-field="nickname" data-max-select-limit="5" //最多选择数量
data-multiple="true" data-params='{"custom[is_staff]":"1"}' //where条件 比如status=1
class="form-control selectpage" name="row[teacher_id]" //要写入新表的字段名称
type="text" value="{$row.teacher_id}">
</div>
</div>
```