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关系中。
当我尝试使用每个 "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关系中。