首页 > 解决方案 > Eloquent 获取特定表列的更高值

问题描述

在 Laravel 中使用 Eloquent,

要获取列的最小值,此代码有效:

public function getLowestYearBook()
{
    return CV_Outputs::min('book_publication_year');
}

但是为了获得更高的价值它不起作用,我使用'max'而不是'min'。

如何获得更高的?谢谢!

- - - - - - - - 编辑:

问题是我有一些行中包含“未定义”文本,因此按 desc 排序会返回该行,因为字母“高于”数字。

我通过这样做来修复它:

public function getHighestYearBook()
{
    return CV_Outputs::all()
    ->where('book_publication_year', '<>', "Not defined")
    ->sortByDesc('book_publication_year')
    ->first()->book_publication_year;
}  

标签: phplaraveleloquent

解决方案


您应该检查所有行中的类型/值是否相同,因为max应该完成这项工作。但是尝试按降序对它们进行排序,这意味着首先是最高的,然后得到第一个元素,如下所示:

CV_Outputs::all()
    ->where('book_publication_year', '!=', 'Not defined')
    ->sortByDesc('book_publication_year')
    ->first();

推荐阅读