Laravel 拉雷维尔口若悬河的“接手”和“命令人”`

Laravel 拉雷维尔口若悬河的“接手”和“命令人”`,laravel,laravel-5,laravel-eloquent,Laravel,Laravel 5,Laravel Eloquent,当我尝试使用“take”和“orderBy”查询时,模型返回一些记录: $this->hasMany(“App\User”)->take(3) $this->hasMany(“App\User”)->orderBy(“id”、“desc”) 但当我合并它们时,它会返回一个空数组: $this->hasMany("App\User")->take(3)->orderBy("id", "desc") 我运行原始sql(来自toSql()函数) 它会像我预期的那样返回3条记录。 我

当我尝试使用“take”和“orderBy”查询时,模型返回一些记录:

$this->hasMany(“App\User”)->take(3)

$this->hasMany(“App\User”)->orderBy(“id”、“desc”)

但当我合并它们时,它会返回一个空数组:

$this->hasMany("App\User")->take(3)->orderBy("id", "desc")
我运行原始sql(来自toSql()函数) 它会像我预期的那样返回3条记录。
我犯了什么错误?

您需要更改订单,它将是:

$this->hasMany("App\User")->orderBy("id", "desc")->take(3)

这个
->take(3)
将执行SQL查询,因此您首先需要将
orderBy(“id”,“desc”)
添加到hasMany关系中。

我更改了链的顺序,但是当orderBy为null(“asc”作为默认值)时,结果会像我预期的那样返回。如果我理解正确,它工作不正确,您以错误的顺序获取它,或者?(1)
$this->hasMany(“App\User”)->orderBy(“id”)->take(3)
(2)
$this->hasMany(“App\User”)->orderBy(“id”,“desc”)->take(3)
(1)返回3条记录,但(2)返回空数组