缺少路线bus.edit所需的参数

时间:2020-11-08 16:48:06

标签: laravel

访问菜单时显示错误

缺少[Route:bus.edit] [URI:bus / {bu} / edit]所需的参数

按钮查看代码

<a href="{{ route('bus.edit',  ['bus' => $row["bus_id"]]) }}" class="btn btn-sm btn-warning">

路线

Route::resource('bus', 'BusController')->middleware('auth');

对于控制器

public function index()
{
    $data['title'] = "Buses";
    $data['menu'] = 1;
    $buses = DB::table('buses')
                    ->join('brands', 'buses.brand_id', '=', 'brands.brand_id')
                    ->get()->toArray();
    $data['buses'] = json_decode(json_encode($buses), true);
    $data['no'] = 1;
    return view('bus.index', $data);
}

public function edit($id)
{
    $data['title'] = "Edit Bus";
    $data['menu'] = 1;
    $data['bus'] = Bus::find($id);
    $data['brands'] = Brand::all();
    return view('bus.edit', $data);
}

2 个答案:

答案 0 :(得分:1)

如错误所示,您需要传递一个名为{bu}的参数, 因此将其更改为:

{{ route('bus.edit',  ['bu' => $row["bus_id"]]) }}

或者,

{{ route('bus.edit',  $row["bus_id"]) }}

答案 1 :(得分:0)

由于此词bus的复数/单数系统已损坏,因此在8.x中,您可以明确告诉资源应该将route参数命名为

Route::resource('bus', 'BusController')
    ->parameters(['bus' => 'bus'])
    ->middleware('auth');

这将使路由参数为bus而不是bu。这样,您当前拥有的route助手的呼叫就会起作用。