在“正常”关系中,我可以这样做,在eager加载时只选择几列(使用with):
->with(['reported' => function ($query) { $query->select(['nick','id']); } ])
字符串
但是,当使用多态关系时,我想要选择的列根据变形的模型而不同,该如何操作呢?
我已经试过像普通的方法一样使用查询,也试过使用morph子句,但是上面没有select函数。
--编辑:
ReportMessages (model)
public function author(){
return $this->morphTo();
}
User (model)
protected $fillable = ['name', (...)];
public function reportMessages(){
return $this->morphOne('App\ReportMessage', 'author');
}
Jogador (model)
protected $fillable=['nick', (...)];
public function reportMessages(){
return $this->morphOne('App\ReportMessage', 'author');
}
型
当变形的是Jogador模型时,我想只选择(当急切加载时)nick,当变形的是User模型时,只选择名称。
2条答案
按热度按时间vecaoik11#
试试这个
字符串
umuewwlo2#
为了选择每个多态关系的特定列,可以使用constraint
有一个类似于变形名称的注解,可以是Post模型或Video,为了恢复每个模型的不同列,我们可以放入以下代码:
字符串