【问题标题】:Laravel sorting eager loaded dataLaravel 对预先加载的数据进行排序
【发布时间】:2014-10-28 21:22:42
【问题描述】:

我正在使用以下查询来获取某个事件的所有公司。它们是按名称排序的

$companies = Company::where('city_id', 3)->orderBy('name', 'asc')->get();

现在在我看来,我使用即时加载来获取为该公司工作的所有人员

@foreach($companies as $company)
    @foreach($company->persons as $person)
        <tr><td>{{ $person->firstname }}</td></tr>
    @endforeach
@endforeach

我正在尝试按姓名对人员进行排序,但它不起作用。关于如何做到这一点的任何想法?

谢谢

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    你可以在 Laravel 中进一步查询你的关系。

    例如按姓名升序获取人员。

    @foreach($companies as $company)
        @foreach($company->persons()->orderBy('firstname','asc')->get() as $person)
            <tr><td>{{ $person->firstname }}</td></tr>
        @endforeach
    @endforeach
    

    【讨论】:

    • 完美! Laravel 一直很棒 :) 仍然想知道 $company->persons 和 $company->persons() 之间有什么区别谢谢!
    • $company->persons 返回一个集合类的对象,类似于 $company->persons()->get();提供而 $company->persons() 是构建器类的对象,可以进一步用于数据库操作。
    猜你喜欢
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多