【发布时间】:2021-06-12 12:55:28
【问题描述】:
缺少 [Route: admin.status-order.update] [URI: admin/status-order/{status_order}] [缺少参数: status_order] 的必需参数。
我不明白错误在哪里,这是我的控制器:
public function show(Order $order)
{
$data = DB::table('order_menu')
->join('menus', 'menus.id', '=', 'order_menu.menu_id')
->join('orders', 'orders.id', '=', 'order_menu.order_id')
->select('orders.*', 'menus.name', 'order_menu.quantity')
->where('orders.id', $order->id)
->get();
return view('admin.status-order.edit')->with([
'order' => $order,
'data' => $data,
]);
}
public function update(Request $request, Order $order)
{
$order->status = $request->status;
$order->save();
return redirect()->route('admin.status-order.index');
}
对于edit.blade.php:
<form action="{{ route('admin.status-order.update', $order) }}" method="POST">
@csrf
{{ method_field('PUT') }}
<h6 style="text-align: center; font-size: 18px">Order #{{ $order->order_number }}</h6>
<div class="form-group row">
<label for="staticEmail" class="col-sm-2 col-form-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="name" id="name" required value="">
</div>
</div>
<button type="submit" class="btn btn-secondary" style="margin-top: 20px; width: 100%">Submit</button>
</form>
路线:
Route::namespace("App\Http\Controllers\Admin")->prefix("admin")->name("admin.")->middleware('can:adminpage')->group(function () {
Route::resource("/status-order", OrderStatusController::class);
});
【问题讨论】:
-
分享您的路线文件。您正在以
action的形式发送Order的对象。我猜你的路线需要和字符串或整数。 -
@Jayant 我已将路线添加到我的问题中
-
您是否尝试添加
{{ route('admin.status-order.update', ['status_order' => $order->status_order) }}` 和方法update($status_order)。您能否提及或更新您的'admin.status-order.update'路线。您正在使用资源控制器并更新使用 PUT/PATCH 方法并且需要一个参数。请参阅文档laravel.com/docs/8.x/controllers#resource-controllers -
@Jayant 我已经按照你的建议尝试过,但仍然出现同样的错误
-
@aufa 请运行命令
php artisan route:list并粘贴/status-order资源路由