我现在变得非常沮丧...
尝试在控制器内使用编辑方法。所有其他控制器都可以正常工作,但是在这里我可能错过了一些东西,找不到了。
错误:
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}而引起的。
答案 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){...