Laravel 5.3:缺少参数 2

Posted

技术标签:

【中文标题】Laravel 5.3:缺少参数 2【英文标题】:Laravel 5.3: Missing argument 2 【发布时间】:2017-04-06 21:06:52 【问题描述】:

重定向有问题。

例如,在这个视图中,

我们有一家名为 Tiago 的公司的笔记的显示视图。

“为 Tiago 创建笔记”的链接如下所示:

<p><a href="route('company.companies.notes.create', $company->companyID)">Create Note for $company->Company_Name</a></p>

$company->companyID 正在从控制器中获取,如下所示:

public function create(Request $request, $id)

    //
    $company = $request->user()->company()->first();
    $notes = NotesCompany::where('companyID', "=", $id)->get();

    return view("company.companies.notes.create", compact('company', 'notes'));


并且有以下路线:

GET|HEAD  | company/companies/notes/create | company.companies.notes.create | App\Http\Controllers\CompanyNotesController@create | web,company   |

Route::resource('company/companies/notes', 'CompanyNotesController',['names'=>[


    'index'=>'company.companies.notes.index',
    'create'=>'company.companies.notes.create',
    'store'=>'company.companies.notes.store',
    'edit'=>'company.companies.notes.edit',
    'show'=>'company.companies.notes.show'

]]);

问题是,当按下“为 Tiago 创建笔记”时,出现以下错误:

这里有调试吗?赞赏

蒂亚戈

【问题讨论】:

删除请求 $request 并检查。 那没有解决问题... 当你有一个请求时,它应该来自表单提交,更多的是你使用默认路由,请检查laravel.com/docs/5.3/controllers Jagadesha NH 建议中的错误是什么? 删除请求然后使用: $company = Company::first();现在,出现的问题是“缺少参数 1”,域如下所示:“...public/company/companies/notes/create?1” 【参考方案1】:

通常create 资源方法不带任何 url 参数。但是,在尝试使用嵌套资源时它可以这样做。您似乎正在尝试使用嵌套资源路由,但没有正确设置。

您的路线需要如下所示:

Route::resource('companies.notes', 'CompanyNotesController',['names'=>[
    'index'=>'company.companies.notes.index',
    'create'=>'company.companies.notes.create',
    'store'=>'company.companies.notes.store',
    'edit'=>'company.companies.notes.edit',
    'show'=>'company.companies.notes.show'
]]);

这将创建类似于companies/company_id/notes/create 等的网址,并且company_id 将被传递到您的create 方法中。

我不相信在使用嵌套资源时有办法修改生成的路由。您可以尝试Route::resource('company/companies.notes', ...,但我不知道这是否可行。

【讨论】:

以上是关于Laravel 5.3:缺少参数 2的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.3:缺少参数 2

Vue 2 Laravel 5.3 Vue-router 2 设置 Vue-router 的正确方法

Vue 2 Laravel 5.3 vue-toastr

如何使用获取参数将 laravel (5.3) 路由重定向到其他路由

在 Laravel 5.3 的中间件中访问路由 URL 参数

如何解决 App\Repositories\FavoriteRepository::delete() 的缺失参数 1? (Laravel 5.3)