Dact-admin 一对多关联新增报错 array_key_exists(): Argument #2 ($array) must be of type array, string give
1. 运行环境
nginx
dcat-admin 2.2
1). 当前使用的 Laravel 版本?
8.5
2). 当前使用的 php/php-fpm 版本?
PHP 版本:
php 8.0
3). 当前系统
macOS
4). 业务环境
开发环境
2. 问题描述?
Dact-admin 一对多关联新增报错 array_key_exists(): Argument #2 ($array) must be of type array, string give
form
![Dact-admin 一对多关联新增报错 array_key_exists(): Argument #2 ($array) must be of type array, string give]
关联关系
尝试在saving里修改类型也是无效
不使用关联关系提交
$form->tree('fares', '不包邮区域')
->nodes((new RegionService())->provinces())
->setTitleColumn('title');
$form->number('freight', '运费')->required();
![Dact-admin 一对多关联新增报错 array_key_exists(): Argument #2 ($array) must be of type array, string give]
protected function form(): Form
{
return Form::make(new FareTemplate(), function (Form $form) {
$form->display('id');
$form->text('name');
$form->radio('type', '邮费类型')->options(FareTemplate::TYPE_MAP)->default(0)->when(1, function (Form $form) {
$form->tree('conditions', '不包邮区域')
->nodes((new RegionService())->provinces())
->setTitleColumn('title');
$form->number('freight', '运费')->required();
})->when(0, function (Form $form) {
$form->number('freight', '运费')->required();
});
$form->text('storehouse', '发货仓')->default('')->placeholder('杭州仓库');
$form->text('delivery_time', '发货时间')->default('')->placeholder('24小时内发货');
});
}
// templateModel
public function conditions(): HasMany
{
return $this->hasMany(FareTemplateCondition::class, 'template_id');
}
// templateConditionModel
public function template(): BelongsTo
{
return $this->belongsTo(FareTemplate::class, 'template_id');
}
可能是我太菜,历经昨天下午到现在,终于找到解决办法了!!!!! 首先在一对多的字段上增加saving,使用array_walk或者其他方法实现组装附表(多)的字段值
然后就是关联关系,只写一个外键