php - 在 Laravel : How do I sort children by name? 中对 child 进行排序

标签 php laravel laravel-5 eloquent laravel-5.1

下面是我的 Controller 代码

$categories = Category::where('parentId', '=', 0)
                                ->with('children')
                                ->orderBy('name', 'asc')
                                ->get();    
return view('home', compact('categories'));

当我在 View 中访问我的类别及其子类别时,类别似乎是按名称排序的,但子类别不是。如何按名称对子类别进行排序?

此外,是否可以使用与子项不同的标准对类别进行排序,例如。按类别的位置和子项的名称。如果是,如何?

最佳答案

您需要对子项而不是类别应用order by。以下代码可以解决问题:

$categories = Category::whereParentId(0)
  ->with(['children' => function($query) {
    $query->orderBy('name', 'asc');
  }])
  ->get();    

关于php - 在 Laravel : How do I sort children by name? 中对 child 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34299906/

相关文章:

php - 在不更改 777 权限的情况下使用 Apache + PHP 发送邮件的权限错误

php - 在 Doctrine_Query 中使用虚拟字段

php - 方法不存在

php - SQL 按公式加权行

php - 我如何使用 css 对齐我的 div 容器

php - 是否有在 LAMP 堆栈上运行的 DotNetOpenAuth 等效项?

phpunit - 测试新模型时未找到 Eloquent 类

php - 以 30 分钟为单位显示上午 9 点至下午 5 点 + 数组以删除 'unavailable' 次

laravel - Composer 在您的平台中检测到问题 : Your Composer dependencies require a PHP version ">= 7.2.5"

laravel - Select : Laravel 5. 3 中的验证问题