「私がやりたいことは、マスター テーブルの集計フィールドを更新することです。」
3 つのテーブル、食事、注文、および order_items があります。食事 hasMany Order Order hasMany OrderItem
class Meal extends Eloquent {
protected $table = 'meals';
protected $primaryKey = 'id';
public function orders() {
return $this->hasMany('Order', 'meal_id');
}
}
class Order extends Eloquent {
protected $table = 'orders';
protected $primaryKey = 'id';
public function meal() {
return $this->belongsTo('Meal', 'meal_id');
}
public function orderItems() {
return $this->hasMany('OrderItem', 'order_id');
}
}
class OrderItem extends Eloquent {
protected $table = 'order_items';
protected $primaryKey = 'id';
public function order() {
return $this->belongsTo('Order', 'order_id');
}
}
私のコントローラーでは、大量割り当てを使用して3つのテーブルの両方を挿入します
$meal = Meal::create($mealData);
$order = Order::create($orderData);
$orderItem = OrderItem::create($orderItemData);
...
//I don't know what to do next
食事モデルに updateSummary() などの関数がある場合、これら 3 つのテーブルを挿入した後、updateSummary() を呼び出す方法と、挿入されたばかりの現在の food_id を参照する方法を教えてください。
これは私が取り組んできたことです
public function updateSummary() {
//using relationship
$orders = $this->orders();
//then use $orders to do some calculation
}
コントローラーからこれを呼び出すことができますか
//after insert those 3 tables
$meal->updateSummary();
上で述べたように、子テーブルにデータを挿入した後、マスター テーブル (食事) の集計フィールド (amount_sum) を更新したいのですが、どの方向に進むべきかわかりません。アドバイスをお願いします。