Laravel雄辩地说明如何获得非NULL的最小值?

时间:2016-06-11 08:57:30

标签: php laravel eloquent

这是我的Product模型中的代码,用于获取最低价格(一种产品可以有多种价格)

public function getLowestAttribute ()
{
    return $this->prices->min('price');
}

但如果有NULL,它将返回NULL而不是最小整数。

基本上我想实现这个目标:

[1, NULL, 2]返回1

[1, NULL, 0]返回0

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:6)

我找到filter,现在可以使用了。

public function getLowestAttribute ()
{
    $prices = $this->prices->filter(function ($item) {
        return !is_null($item->price);
    });

    return $prices->min('price');
}

答案 1 :(得分:4)

你有没有尝试过

public function getLowestAttribute ()
{
    return $this->prices->where('price','>=',0)->min('price');
}