Laravel 5.3:缺少论点2

时间:2016-11-23 01:28:22

标签: php laravel routes views controllers

重定向问题。

示例,在此视图中,

here

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

显示为Tiago'创建说明的链接如下所示:

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

其中$ company-&gt; 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'

]]);

问题是,当按下&#39;为Tiago创建笔记时,会出现以下错误:

here

这里有任何调试吗?理解

蒂亚戈

1 个答案:

答案 0 :(得分: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', ...,但我不知道这是否有效。