2015-11-29 5 views
0

В настоящее время я разрабатываю приложение малого и среднего уровня в laravel Я столкнулся с промежуточным программным обеспечением в laravel, Мое вопрос: могу ли я использовать промежуточное программное обеспечение для внесения изменений в таблицу , например, в моем приложении (Canteen Management System). Когда пользователь заказывает что-то из меню и делает запрос на заказ, перед тем, как вставить заказ в таблицу моделей, я хочу вычесть сумму заказа из его баланса. Причина, по которой я думаю об этом, заключается в том, что атрибут баланса является частью таблицы пользователя, а сумма заказа - это еще одна часть таблицы Order, и я не могу развить какое-либо отношение данных между ними (но я получаю много к одному отношению между ними). Поэтому я не думаю о том, чтобы делать только эту вещь, используя отношения данных. Так вот, когда я нахожусь на основе промежуточного программного обеспечения. Так помогите мне об этом, также Могу ли я использовать две модели в одной функции контроллера?Использование промежуточного программного обеспечения для обработки таблиц laravel 5.1

ответ

1

Middleware выполняется до или после обработки запроса. Это не место, где вы должны выполнять бизнес-логику, которую вы описываете.

инструмента, который лучше подходит для ваших потребностей могут быть примерными наблюдателями красноречив - вы сможете прочитать о них здесь: 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(); 
    } 
} 
+0

именно то, что хотел упомянуть –

+0

Thnx @jedrzej это будет делать это для меня, также если помимо этого подхода, можно ли использовать две модели в одной функции контроллера – robinhood

+0

Единственный ответ, который я могу дать есть: это зависит. Конечно, это технически возможно, но все зависит от вашего дизайна и того, чего вы хотите достичь. –

 Смежные вопросы

  • Нет связанных вопросов^_^