두 모델이 있습니다. 하나는 Order
이고 다른 하나는 Item
입니다. 주문에는 많은 항목이있을 수 있으며 항목에는 단 하나의 주문 만있을 수 있습니다.웅변의 관계로 방법 만들기
내 주문 모델의 내부 있습니다
public function items() {
return $this->hasMany('App\Item', 'OrderNumber', 'OrderNumber');
}
을 그리고 여기 내 아이템 모델의 :
function order() {
return $this->belongsTo('App\Order');
}
내가 모두의 총을 얻을 수있는 기능을 가지고 싶습니다 주문 항목 예를 들어 $order->items->totalPrice()
을 사용하여 전체를 검색 할 수 있기를 원합니다.
행운과 함께 항목 모델에 추가하려고했습니다. 내가 달성하기 위해 노력하고있어 할 수있는 최선의/깨끗한 방법은 무엇
Undefined property: Illuminate\Database\Eloquent\Collection::$totalPrice
:
public function totalPrice() {
$total = 0;
foreach($this as $item) {
$total += $item->AmountPaid;
}
return $total;
}
여기에 내가지고있어 오류가있어? 더 좋게도, Laravel은 합산을위한 내장 된 방법을 가지고 있습니까?
'$ 순서 -> items'는'hasMany' 관계는 항상 비어 있거나 관련 다수를 포함 할 수있는'Collection'을 반환로드 ...'Item' 모델의'Collection' 인스턴스가 아닌 모델 – lagbox