Laravel nova 使用 belongsTo 保存 Resource 字段
Laravel nova save Resource field with belongsTo
我想在 Laravel Nova 中保存资源。
我实际上有 2 个资源和 2 个模型:
Customer 和 CustomerType
客户有这些字段:
Text::make('Vat')
->rules('required', 'string', 'max:254')
->creationRules('unique:customers,vat')
->updateRules('unique:customers,vat,{{resourceId}}'),
BelongsTo::make('Type', 'customer_type', 'App\Nova\CustomerType'),
客户模型有关系customer_type:
public function customer_type(){
return $this->belongsTo('App\Models\CustomerType', 'id', 'type');
}
当我打开创建 客户资源视图 时,我在 select 框中正确看到了类型列表,但是当我尝试设置类型并保存它时 return SQL 错误:
SQLSTATE[HY000]: General error: 1364 Field 'type' doesn't have a
default value (SQL: insert into customers
(vat
, id
, name
,
updated_at
, created_at
) values (vat, ?, test, 2019-07-31 10:41:05,
2019-07-31 10:41:05))
如何将类型添加到nova资源保存?
我还尝试将关系的名称从 customer_type 更改为 type,但它 return 相同错误。
我现在的数据库是:
客户 table
- id
- 增值税
- 类型
customer_type table:
id
鼻涕虫
编辑
我也试过
BelongsTo::make('CustomerType'),
现场和客户模型:
public function customertype(){
return $this->belongsTo('App\Models\CustomerType', 'id', 'type');
}
但是出现了同样的错误。
对于其他开发者
我发现了我的错误。
在我的模型中,我颠倒了关系的外键和所有者键:
而不是:
public function customertype(){
return $this->belongsTo('App\Models\CustomerType', 'id', 'type');
}
应该是
public function customertype(){
return $this->belongsTo('App\Models\CustomerType', 'type', 'id');
}
我想在 Laravel Nova 中保存资源。
我实际上有 2 个资源和 2 个模型:
Customer 和 CustomerType
客户有这些字段:
Text::make('Vat')
->rules('required', 'string', 'max:254')
->creationRules('unique:customers,vat')
->updateRules('unique:customers,vat,{{resourceId}}'),
BelongsTo::make('Type', 'customer_type', 'App\Nova\CustomerType'),
客户模型有关系customer_type:
public function customer_type(){
return $this->belongsTo('App\Models\CustomerType', 'id', 'type');
}
当我打开创建 客户资源视图 时,我在 select 框中正确看到了类型列表,但是当我尝试设置类型并保存它时 return SQL 错误:
SQLSTATE[HY000]: General error: 1364 Field 'type' doesn't have a default value (SQL: insert into
customers
(vat
,id
,name
,updated_at
,created_at
) values (vat, ?, test, 2019-07-31 10:41:05, 2019-07-31 10:41:05))
如何将类型添加到nova资源保存?
我还尝试将关系的名称从 customer_type 更改为 type,但它 return 相同错误。
我现在的数据库是:
客户 table
- id
- 增值税
- 类型
customer_type table:
id
鼻涕虫
编辑
我也试过
BelongsTo::make('CustomerType'),
现场和客户模型:
public function customertype(){
return $this->belongsTo('App\Models\CustomerType', 'id', 'type');
}
但是出现了同样的错误。
对于其他开发者
我发现了我的错误。
在我的模型中,我颠倒了关系的外键和所有者键:
而不是:
public function customertype(){
return $this->belongsTo('App\Models\CustomerType', 'id', 'type');
}
应该是
public function customertype(){
return $this->belongsTo('App\Models\CustomerType', 'type', 'id');
}