This is the code in my Product
model to get the minimum price value (one product can have multiple price)
public function getLowestAttribute ()
{
return $this->prices->min('price');
}
But it will return NULL
rather than the smallest integer if there is a NULL
.
Basically I want to achieve this:
[1, NULL, 2]
returns 1
[1, NULL, 0]
returns 0
Any suggestion would be appreciated.
I found filter
, and it works now.
public function getLowestAttribute ()
{
$prices = $this->prices->filter(function ($item) {
return !is_null($item->price);
});
return $prices->min('price');
}
Have you tried maybe
public function getLowestAttribute ()
{
return $this->prices->where('price','>=',0)->min('price');
}
A fix to the KuKeC answer would be
public function getLowestAttribute()
{
return $this->prices->where('price', '!==', null)->min('price');
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With