首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel -缺少路由的必需参数

Laravel -缺少路由的必需参数
EN

Stack Overflow用户
提问于 2020-09-07 19:10:52
回答 1查看 2.6K关注 0票数 0

我在Laravel 7中的路线有问题,不知道我在哪里,在这里出错。

我有这个路由声明:

代码语言:javascript
复制
Route::group(['prefix'=>'config', 'namespace'=>'Config'], static function () {
    Route::resource('id-generation', 'IDSettingsController',  ['names'=>'config.id_generation'])->only(['index', 'edit', 'update']);
   
});

然后是一个控制器:

代码语言:javascript
复制
public function edit(IdSetting $setting)
    {
        return view('config.id.edit')->with(['setting'=>$setting]);
    }

然后是一个视图:

代码语言:javascript
复制
<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>

但我一直收到错误:

代码语言:javascript
复制
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)

在我所能看到的范围内,我做的一切都是正确的。即使是artisan命令route:list也可以清楚地显示路由及其参数等。

我可能在哪里弄错了。

令人惊讶的是,如果我将其更改为{{url('config/id-generation/',$setting)}},一切似乎都运行正常。

EN

回答 1

Stack Overflow用户

发布于 2020-09-07 20:54:20

您必须将模型变量名称与资源名称相匹配,您可以使用as对其进行自定义

代码语言:javascript
复制
Route::group(['prefix'=>'config', 'namespace'=>'Config'], static function () {
    Route::resource('id-generation', 'IDSettingsController',  ['names'=>'config.id_generation', 'as' => 'setting'])->only(['index', 'edit', 'update']);
   
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63776444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档