【发布时间】:2019-09-30 13:14:37
【问题描述】:
我想计算模型中某个属性的值,但无法得到我需要的数据。
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
如果这不可能,最好的选择是在视图本身而不是模型中进行计算?
【问题讨论】:
标签: php laravel eloquent model