雄辩地获得特定表的列的更高价值

时间:2019-06-23 21:33:00

标签: php laravel eloquent

在Laravel中使用口才,

要获得列的最小值,此代码可以工作:

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;
}  

1 个答案:

答案 0 :(得分:1)

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

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