繁体   English   中英

使用中间件进行表操作laravel 5.1

[英]Using middleware for table manipulation laravel 5.1

目前,我在laravel中开发了一个中小型应用程序,我在laravel中遇到了中间件,我的问题是我可以使用中间件在表中进行更改,例如,在我的应用程序(食堂管理系统)中,当用户从菜单并发出订单请求,然后在将订单插入模型表中之前,我想从他的余额中减去订单金额。 我之所以这样做,是因为余额属性是用户表的一部分,订单金额是订单表的另一部分,并且我无法开发它们之间的任何数据关系(但是我在它们之间派生了许多关系) 。 所以我不打算只使用数据关系来做这件事,所以那时候我遇到了中间件。 因此,请帮助我,我还可以在一个控制器功能中使用两个模型吗?

在处理请求之前或之后执行中间件。 这不是您应该执行所描述的业务逻辑的地方。

Eloquent的模型观察者可能是一个更适合您需求的工具-您可以在此处阅读有关它们的更多信息: http : //laravel.com/docs/5.0/eloquent#model-observers

在您的情况下,您可以注册一个OrderObserver,这将在下订单后减少用户的余额。 一个基本的例子:

class OrderObserver {
  public function created($order) {
    $user = $order->user;
    $user->balance = $user->balance - $order->quantity;
    $user->save();
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM