我在Laravel 7中的路线有问题,不确定我在哪里,这里出问题了。
我有以下路线声明:
Route::group(['prefix'=>'config', 'namespace'=>'Config'], static function () {
Route::resource('id-generation', 'IDSettingsController', ['names'=>'config.id_generation'])->only(['index', 'edit', 'update']);
});
然后是一个控制器:
public function edit(IdSetting $setting)
{
return view('config.id.edit')->with(['setting'=>$setting]);
}
然后查看:
<form method="post" action="{{route('config.id_generation.update', ['id_generation'=>$setting])}}">
@method('patch')
@csrf
<x-inputs.text-input name="prefix" :model-object="$setting" />
<x-inputs.button/>
</form>
但是我不断收到错误消息:
Illuminate\Routing\Exceptions\UrlGenerationException
Missing required parameters for [Route: config.id_generation.update] [URI: config/id-generation/{id_generation}].(View: F:\PROJECTS\PHP\app\resources\views\config\id\edit.blade.php)
在我所能看到的范围内,我已经正确地完成了所有操作。甚至技工命令route:list也可以清楚地显示带有其参数等的路线。
我可能在哪里弄错了。
令人惊讶的是,如果我将其更改为{{url('config / id-generation /',$ setting)}},一切似乎都能正常工作。
答案 0 :(得分:0)
您必须将模型变量名称与资源名称进行匹配,您可以使用as
对其进行自定义:
Route::group(['prefix'=>'config', 'namespace'=>'Config'], static function () {
Route::resource('id-generation', 'IDSettingsController', ['names'=>'config.id_generation', 'as' => 'setting'])->only(['index', 'edit', 'update']);
});