mysql - 如何仅根据 Laravel 7 中的 HTML 表单值更新特定列
问题描述
我正在尝试根据我的 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”?
提前非常感谢!:)
解决方案
假设您有一个表格,在这种情况下用户可以写下取消说明,您可以这样做
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')
推荐阅读
- c# - 我的消息会被两次添加到队列中吗?
- javascript - 在从对 AWS Secrets Manager 的 API 调用返回后导出节点文件中的数据
- machine-learning - 使用具有相同参数的 GridSearchCV 和随机森林回归器会产生不同的结果
- php - 遍历多个多任务数组并输出 json
- python - Python Pint 在相乘时不会合并相同数量的单位
- python - Why does my text not orientate to the left?
- jquery - 无法将带有 jquery 的参数从正文传递给 webapi post 方法
- javascript - 在外部包初始化后向websocket(onclose等)添加事件而不引用它
- google-app-maker - DriveApp.getFolderById :找不到具有给定 ID 的项目,或者您无权访问它
- c# - 这个字典操作是线程安全的吗?