如何在laravel中定义多个belongsTo
Posted
技术标签:
【中文标题】如何在laravel中定义多个belongsTo【英文标题】:How to define multiple belongsTo in laravel 【发布时间】:2021-01-20 20:57:34 【问题描述】:我的表有很多外键,例如 prefecture_id、gender_id 和 status_id。
我为那些桌子做了模型。
所以我想定义多个 belongsTo 方法,如下所示,使用查询生成器获取所有数据..
但实际上belongsTo不能这样使用。
public function foreign()
return $this->belongsTo([
'App/Prefecture',
'App/Gender',
'App/Status',
]
如果唯一的方法是为属于定义多个方法。
如何在查询构建器中获取所有属于数据。
请给我建议。
【问题讨论】:
【参考方案1】:据我所知,没有办法从单一方法中获取多个belongsTo
。您需要做的是为每个关系创建一个方法,当您想要加载关系时,您可以执行以下操作。
型号
public function prefecture()
return $this->belongsTo(\App\Prefecture::class);
public function gender()
return $this->belongsTo(\App\Gender::class);
public function status()
return $this->belongsTo(\App\Status::class);
查询
// This will get your model with all of the belongs to relationships.
$results = Model::query()->with(['prefecture', 'gender', 'status'])->get();
【讨论】:
感谢您的回答!我知道这种方式。响应数据有对象。但我想直接将数据分配给表列名。有没有办法? 你能解释一下你想要达到的目标吗?您可以根据您设想的最终目标来编辑您的原始问题。以上是关于如何在laravel中定义多个belongsTo的主要内容,如果未能解决你的问题,请参考以下文章
如何为 belongsTo 创建 Laravel 资源关系?
未定义的属性:Illuminate\Database\Eloquent\Relations\BelongsTo::$status。 Laravel 5.5 关系