Laravel 5.3:缺少参数 2
Laravel 5.3: Missing argument 2
重定向有问题。
例如,在这个视图中,
我们有一家名为 Tiago 的公司的笔记的显示视图。
表示 'Create Note for Tiago' 的 link 如下所示:
<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'
]]);
问题是,当按下 'Create Notes for Tiago' 时,会出现以下错误:
这里有调试吗?赞赏
蒂亚戈
通常 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'
]]);
这将创建 url 看起来像 companies/{company_id}/notes/create
等,并且 company_id
将被传递到您的 create
方法中。
我认为在使用嵌套资源时没有办法修改生成的路由。您可以尝试 Route::resource('company/companies.notes', ...
,但我不知道这是否可行。
重定向有问题。
例如,在这个视图中,
我们有一家名为 Tiago 的公司的笔记的显示视图。
表示 'Create Note for Tiago' 的 link 如下所示:
<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'
]]);
问题是,当按下 'Create Notes for Tiago' 时,会出现以下错误:
这里有调试吗?赞赏
蒂亚戈
通常 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'
]]);
这将创建 url 看起来像 companies/{company_id}/notes/create
等,并且 company_id
将被传递到您的 create
方法中。
我认为在使用嵌套资源时没有办法修改生成的路由。您可以尝试 Route::resource('company/companies.notes', ...
,但我不知道这是否可行。