Laravel Eloquent `take` 和 `orderBy`

Laravel Eloquent `take` and `orderBy`

当我尝试使用每个 "take" 和 "orderBy" 查询时,模型 return 一些记录:

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

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

但是当我组合它们时,它 return 一个空数组:

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

我运行原来的sql(来自toSql()函数) 正如我所料,它 return 3 条记录。 我犯了什么错误?

您需要更改顺序,它将是:

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

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