Laravel-缺少路线所需的参数

时间:2020-09-07 11:10:51

标签: php laravel routes laravel-routing laravel-7

我在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)}},一切似乎都能正常工作。

1 个答案:

答案 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']);
   
});