Я хотел бы рассчитать значение атрибута в его модели, но не могу получить нужные мне данные.
class Product extends Model
{
protected $appends = ['lowest_price'];
public function shops(){
return $this->belongsToMany('App\Shop')->withPivot('price','url');
}
public function type(){
return $this->belongsTo('App\Type');
}
public function getLowestPriceAttribute() <-----------------------------
{
$lowest_price = 0;
foreach($this->shops() as $shop) {
if($lowest_price > $shop->pivot->price) {
$lowest_price = $shop->pivot->price;
}
}
return $lowest_price;
}
}
$this->shops()
, похоже, не загружает все данные, которые мне нужно сделатьрасчеты.
На мой взгляд, я могу перебирать магазин продукта следующим образом:
@foreach($shops as $shop)
<tr>
<a href="{{ $shop->pivot->url }}" target="_blank">
<td>{{ $shop->name }}</td>
<td>{{ $shop->pivot->price }}EUR</td>
</a>
</tr>
@endforeach
Если это невозможно, лучше всего было бы выполнить вычисления в представлениисама вместо модели?