#mysql #database #laravel #sql-update #crud
#mysql #База данных #laravel #sql-обновление #crud
Вопрос:
Я пытаюсь обновить определенные столбцы таблицы базы данных на основе моего текстового значения ввода HTML-формы. В моем OrderHistoryController
случае я разрешаю клиентам отменять заказ для моего проекта веб-сайта электронной коммерции. Таким образом, я обновляю статус и cancel_notes
столбцы. Я смог это сделать.
В моем контроллере у меня есть этот метод отмены:
public function cancel(Order $order)
{
$order->status = 'canceled';
$order->save();
//check if all suborders are canceled
$pendingOrders = $order->where('status','!=', 'canceled')->count();
if($pendingOrders == 0) {
$order->update(['status'=>'canceled']);
$order->update(['cancel_notes'=>'cancel_notes']);
}
// send mail to customer that order was completed
Mail::to($order->user->email)->send(new OrderCanceled($order));
return redirect('/order-history')->withMessage('Order was canceled');
}
Как я могу изменить эту строку $order->update(['cancel_notes'=>'cancel_notes']);
, чтобы извлекать текстовое значение из моего текстового поля ввода ‘cancel_notes’ вместо того, чтобы иметь буквальное значение ‘cancel_notes’ при обновлении?
Заранее большое спасибо! 🙂
Ответ №1:
Предположим, у вас есть форма, в которой пользователь записывает заметки об отмене, в этом случае вы можете сделать
public function cancel(Order $order, Request $request)
{
$order->status = 'canceled';
$order->save();
//check if all suborders are canceled
$pendingOrders = $order->where('status','!=', 'canceled')->count();
if($pendingOrders == 0) {
$order->update(['status'=>'canceled']);
$order->update(['cancel_notes' => $request->cancel_notes]);
}
// send mail to customer that order was completed
Mail::to($order->user->email)->send(new OrderCanceled($order));
return redirect('/order-history')->withMessage('Order was canceled');
}
Я предполагаю, что ваше входное имя будет
cancel_notes
Другой способ сделать это вместо ввода Request
класса вы можете использовать request()
вспомогательную функцию следующим образом request('cancel_notes')