我知道当您使用Eloquent使用with
方法检索关系时,是否可以为表提供别名?
例如:
Post::where('title', 'like', '%' . $title . '%')
->where('published', 1)
->with(['medias AS jpeg' => function($q) {
$q->where('format', 'jpeg');
}])->with(['medias AS gif' => function($q) {
$q->where('format', 'gif');
}])->first();
我知道这不起作用,但这是为了给你一个情况。
是否可以手动或必须这样做?
提前谢谢。
答案 0 :(得分:1)
这是不可能的,因为with
不接受表,但是关系名称,它只存储给定关系的结果一次。
因此,只需定义不同的关系:
public function gifs()
{
return $this->hasMany('Media')->where('format', 'gif');
}
public function jpegs()
{
return $this->hasMany('Media')->where('format', 'jpeg');
}
hasMany
或显然是任何关系类型。