【问题标题】:Laravel Eloquent Relations: ->latest()Laravel Eloquent 关系:->latest()
【发布时间】:2016-08-13 20:10:08
【问题描述】:

laravel中latest()的作用是什么?

例子:

public function activity()
{
    return $this->hasMany('App\Activity')
        ->with(['user', 'subject'])
        ->latest();
}

来自第 44 行的Build an activity feed in Laravel

我一直在查看 laravel 文档,但找不到...

【问题讨论】:

    标签: laravel-5 eloquent


    【解决方案1】:

    latest()Illuminate\Database\Query\Builder 类中定义的函数。它的工作非常简单。这就是它的定义方式。

    public function latest($column = 'created_at')
    {
        return $this->orderBy($column, 'desc');
    } 
    

    因此,它将只是orderBy 与您在descending 中提供的列顺序,默认列将是created_at

    【讨论】:

    • 我们可以将数组传递给 latest() 方法吗?
    • @TahirAfridi,如文档中所述,“默认情况下,结果将按 created_at 列排序。或者,您可以传递您希望排序的列名”
    • 简而言之:默认情况下会根据 created_at 列获取 NEWEST 数据库条目。
    • 一点也不直观,我认为 latest() 会与 first() 相反。
    【解决方案2】:

    ->latest() 从数据库中获取最新的数据集。简而言之,它对获取的数据进行排序,使用“created_at”列按时间顺序排列数据。

    【讨论】:

    • 真的能抓取吗?
    • 是的,它获取并返回最近的记录数组
    【解决方案3】:

    像这样在你的代码上添加 ->get()

     public function activity()
            {
                return $this->hasMany('App\Activity')
                    ->with(['user', 'subject'])
                    ->latest()->get();
            }
    

    【讨论】:

    • 你测试过这段代码吗?并有这方面的文件。
    猜你喜欢
    • 2020-10-02
    • 2018-02-09
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 2015-01-01
    • 2013-10-03
    • 2021-03-20
    相关资源
    最近更新 更多