问题
When I try to use each of "take" and "orderBy" query, the Model return some records:
$this->hasMany("App\User")->take(3)
$this->hasMany("App\User")->orderBy("id", "desc")
But when I combine them, it return a null array:
$this->hasMany("App\User")->take(3)->orderBy("id", "desc")
I run the original sql (from toSql() function) and it return 3 records as I expect. What mistake I get?
回答1:
You need to change the order, it will be:
$this->hasMany("App\User")->orderBy("id", "desc")->take(3)
This ->take(3)
will execute the mysql query, so you first need to add the orderBy("id", "desc")
to the hasMany relation.
来源:https://stackoverflow.com/questions/42922008/laravel-eloquent-take-and-orderby