1

“我要做的是更新主表的汇总字段。”

我有 3 张桌子、餐点、订单和 order_items。Meal 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

如果我在 Meal 模型中有一个函数,例如 updateSummary(),在插入这 3 个表之后如何调用 updateSummary(),以及如何引用刚刚插入的当前 meal_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),但是不知道往哪个方向走,请指教,谢谢。

4

1 回答 1

1

获取meal_id

create()函数,创建实例,重要的是,返回

$meal = Meal::create($mealData);

所以,在这一点上,$meal_id你只需要把它从你的模型中拉出来:

$meal_id = $meal->meal_id;

这同样适用于 和 的新$order实例$orderItem。那有意义吗?

于 2013-08-15T13:54:25.497 回答