【发布时间】:2020-03-26 06:55:48
【问题描述】:
我有两个模型产品和图像。我将产品模型上的路由键名称更改为使用 slug 字段,现在我无法加载与图像模型的 hasMany 关系
这是产品模型
class Product extends Model
{
protected array $with = ['images'];
public function getKeyName()
{
return 'slug';
}
protected array $guarded = [];
public function images() : HasMany
{
return $this->hasMany(Image::class, 'product_id');
}
}
和图像模型
class Image extends Model
{
protected array $guarded = [];
public function image() : BelongsTo
{
return $this->belongsTo(Product::class);
}
}
所以当我尝试时
Product::first()->images
它只是返回一个空集合
但不覆盖getKeyName() 方法,一切正常
【问题讨论】: