这是我的简单结构:
public class Post{
public function user(){
return $this->belongsTo(User::class);
}
}
这是我查询的方式(查询有分页):
$query = Post::query();
$query->with('user');
我想按user.name
排序。
现在,我知道我可以去$query->with('user',function(){...order by here});
了
但是我需要一个可以在堆栈中运行的分离方法。
$query->user->orderBy('name');
$query->user()->orderBy('name');
此https://stackoverflow.com/a/38741988/936651表示可以,但我收到错误:Undefined property/method: Illuminate\Database\Eloquent\Builder::$user
使用with
语句后,有没有办法按相关表排序?
由于
答案 0 :(得分:0)
您的代码不起作用,因为当您执行$query = Post::query();
时,它将返回查询构建器的实例,因此当您执行$query->user()
后,它会给您一个错误,因为查询生成器会执行没有方法user()
,该方法存在于Post模型中。
我没有提供任何代码,因为您已经提到过您已经知道如何with()
方式...