产品型号
class Product extends Model
{
public function features(): HasOne
{
return $this->hasOne(Feature::class);
}
}
特征模型
class Feature extends Model
{
public function product(): BelongsTo
{
return $this->belongsTo(Product::class);
}
}
产品控制器
public function update(Request $request, Product $product) {
$fields = [
'name' => 'Some stuff', // It's Product Model field
'features' => 'Cool feature', // It's Feature Model field
];
$product->update($fields);
$features = Feature::where('product_id', $product->id)->firstOrFail();
$features->update($fields);
}
是否需要检索特征模型的示例来更新其单个字段?我尝试了以下方法:
$product->features()->save($fields);
但它不起作用,因为请求中没有'product_id'键,并且Laravel不知道我到底要更新什么。
使用关系更新模型的最佳实践是什么?
1条答案
按热度按时间fdbelqdn1#
这是旧的,但您可以
updateOrCreate
查尔兹,避免选择和更新两个步骤:关系文档