在 DcatAdmin 的工具表单中,是没有一对多的字段的,要实现这一个也很简单。
处理模型关联
1 2 3 4 5 6 7
|
public function sons() { return $this->hasMany(Dad::class, 'dad_id', 'id'); }
|
工具表单中使用表格
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
public function handle(array $input) { $id = $this->payload['id']; $sons = $input['sons'] ?? null;
return $this ->response() ->success('登记成功!') ->refresh(); }
public function form() { $this->table('sons', function (NestedForm $form) { $form->text('name', '名字'); }); }
public function default(): array { $dad = Dad::find($this->payload['id']); $sons = $dad->sons()->get(); $array = []; foreach ($sons as $son) { array_push($array, ['name' => $son->name]); } return [ 'sons' => $array, ]; }
|