使用`with`语句

时间:2017-04-16 08:03:31

标签: eloquent laravel-5.4

这是我的简单结构:

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语句后,有没有办法按相关表排序?

由于

1 个答案:

答案 0 :(得分:0)

您的代码不起作用,因为当您执行$query = Post::query();时,它将返回查询构建器的实例,因此当您执行$query->user()后,它会给您一个错误,因为查询生成器会执行没有方法user(),该方法存在于Post模型中。

我没有提供任何代码,因为您已经提到过您已经知道如何with()方式...