缺少路线(Laravel)所需的参数

时间:2018-09-25 15:53:43

标签: php laravel model-view-controller

我现在变得非常沮丧...

尝试在控制器内使用编辑方法。所有其他控制器都可以正常工作,但是在这里我可能错过了一些东西,找不到了。

错误:

 Missing required parameters for [Route: blocked.edit] [URI: 
remittance/blocked/{blocked}/edit]. (View: 
/var/www/xxxxxxxx/resources/views/layouts/app.blade.php) (View: 
/var/www/xxxxxxxx/resources/views/layouts/app.blade.php)

这是我的控制器方法:

public function edit($id)
{
    $blocked = $this->model->find($id);
    return view('remittance::edit', compact('blocked'));
}

路由到该方法:

remittance/blocked/{blocked}/edit | blocked.edit | Modules\Remittance\Http\Controllers\RemittanceController@edit

路线:

Route::resource('remittance/blocked', 'RemittanceController', [
  'except' => ['show']
]);

每当我单击“编辑”时,我都会从DataTables调用此方法:

 http://localhost/remittance/blocked/xxxx/edit

呈现其中的DataTables类的摘录:

addColumn('action', function ($query) {
     return view('partials.actions.delete', [
        'actions' => ['edit'],
        'route'   => $this->model,
        'object'  => $query
        ]);
     })

哪个是正确的路线。 我检查了与此主题类似的其他主题,但是所有这些主题都是由于缺少{parameter}而引起的。

3 个答案:

答案 0 :(得分:1)

好像是面包屑有问题。我已经在那儿注册了一条路线,但没有传递必需的参数。完全忘了,那个layout.app正在加载面包屑。

现在:

Breadcrumbs::register('blocked.edit', function ($breadcrumbs, $blocked) {
$breadcrumbs->parent('blocked.index');
$breadcrumbs->push(trans('remittance::titles.edit'), route('blocked.edit', compact('blocked')));

});

与以前一样:

Breadcrumbs::register('blocked.edit', function ($breadcrumbs) {
$breadcrumbs->parent('home');
$breadcrumbs->push(trans('remittance::titles.edit'), route('blocked.edit'));

});

谢谢大家的帮助:)

答案 1 :(得分:0)

使用此功能可能对您有帮助

public function edit(Blocked $blocked)
{
     $blocked = $blocked;
     return view('remittance::edit', compact('blocked'));
}

如果不起作用,请告诉我

答案 2 :(得分:0)

路由中的参数名称应与方法中的参数相同。 因此,如果uri标记为remittance/blocked/{blocked}/edit,则必须为public function edit($blocked){...