问题描述
当我尝试使用select2_from_ajax创建从属字段时,我遇到了一个小问题。 创建新记录时,我得到了正确的结果,因为控制器的逻辑编写正确,但是当我尝试更新记录时,预填充值被错误选择。
例如:
id | state_id | region_id
1 | 1 | 3
2 | 2 | 3
3 | 1 | 2
4 | 2 | 2
当基于region_id的下拉列表从“ 2”中选取值并且我选择state_id“ 2”(id:4)时,那么当我打开更新视图时,我得到的第一个state_id为“ 2”,这意味着id:2而不是id:4
CrudController.PHP
$this->crud->addField([ // select2_from_ajax: 1-n relationship
'label' => "Mestská časť",'tab' => 'Lokalita','type' => 'select2_from_ajax','name' => 'citypart_id','entity' => 'city','attribute' => 'name','data_source' => url('admin/api/citypart'),'include_all_form_fields' => true,'minimum_input_length' => 0,'dependencies' => ['region_id','district_id'],'method'
]);
CitypartController.PHP
public function index(Request $request) {
$form = collect($request->input('form'))->pluck('value','name');
$options = City::query();
if ($form['region_id'] > 0) {
$options = $options->where('region_id',$form['region_id']);
}
return $options->orderBy('name')->paginate(20);
}
如您所见,在CitypartController上是一种逻辑,用于搜索具有特定“ region_id”的相关记录, 但是更新记录会忽略此控制器,然后获取不正确的citypart_id的第一个发现结果。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)