Routes 具有多个ID的Laravel 5路线’;s
我想把两组ID传给一条路线 第一个ID是经过身份验证的用户的ID,例如示例3,第二个ID是候选用户的ID 所以我想让它做的是:vault/3/候选者/120 以下是我想要的路线:Routes 具有多个ID的Laravel 5路线’;s,routes,laravel-5,Routes,Laravel 5,我想把两组ID传给一条路线 第一个ID是经过身份验证的用户的ID,例如示例3,第二个ID是候选用户的ID 所以我想让它做的是:vault/3/候选者/120 以下是我想要的路线: Route::get('vault/{id}/candidates/{id}', 'CandidateController@centreCandidatesShow'); 使用: ublic function centreCandidatesShow($id) { $candidate = Candidate
Route::get('vault/{id}/candidates/{id}', 'CandidateController@centreCandidatesShow');
使用:
ublic function centreCandidatesShow($id)
{
$candidate = Candidate::with('qualification')->find($id);
return view('vault.show', compact('candidate'));
}
有人能告诉我这是否可能,如果可能,怎么可能
如果这个问题听起来很愚蠢或者根本不可能,我很抱歉。我还是个新手
非常感谢。
routes.php
:
Route::get('vault/{userId}/candidates/{candidateId}', 'CandidateController@centreCandidatesShow');
public function centreCandidatesShow($userId, $canidateId)
{
$candidate = Candidate::with('qualification')->find($canidateId);
$user = User::find($userId);
return view('vault.show', compact('candidate'));
}
CandidatesController.php
:
Route::get('vault/{userId}/candidates/{candidateId}', 'CandidateController@centreCandidatesShow');
public function centreCandidatesShow($userId, $canidateId)
{
$candidate = Candidate::with('qualification')->find($canidateId);
$user = User::find($userId);
return view('vault.show', compact('candidate'));
}
命名路线
我强烈建议使用命名路由
Route::get('vault/{userId}/candidates/{candidateId}', [
'as' => 'candidates.show',
'uses' => 'CandidateController@centreCandidatesShow'
]);
这不仅可以帮助您生成url,还可以帮助您传递参数
例如:
这将提供链接并传入参数
您甚至可以从控制器重定向到路由
return redirect()->route('candidates.show',$userId,$candidateId)代码>
说明:
您可以将所需内容作为路线参数。花括号内的任何内容都被视为有效参数。另一个例子是:
Route::get('country/{country}/city/{city}/street/{street}/zip{zip}', 'AddressController@show');
在你的AddressController@show您将按顺序接受这些参数
public function show($country、$city、$street、$zip){..}
文档:routes.php
:
Route::get('vault/{userId}/candidates/{candidateId}', 'CandidateController@centreCandidatesShow');
public function centreCandidatesShow($userId, $canidateId)
{
$candidate = Candidate::with('qualification')->find($canidateId);
$user = User::find($userId);
return view('vault.show', compact('candidate'));
}
CandidatesController.php
:
Route::get('vault/{userId}/candidates/{candidateId}', 'CandidateController@centreCandidatesShow');
public function centreCandidatesShow($userId, $canidateId)
{
$candidate = Candidate::with('qualification')->find($canidateId);
$user = User::find($userId);
return view('vault.show', compact('candidate'));
}
命名路线
我强烈建议使用命名路由
Route::get('vault/{userId}/candidates/{candidateId}', [
'as' => 'candidates.show',
'uses' => 'CandidateController@centreCandidatesShow'
]);
这不仅可以帮助您生成url,还可以帮助您传递参数
例如:
这将提供链接并传入参数
您甚至可以从控制器重定向到路由
return redirect()->route('candidates.show',$userId,$candidateId)代码>
说明:
您可以将所需内容作为路线参数。花括号内的任何内容都被视为有效参数。另一个例子是:
Route::get('country/{country}/city/{city}/street/{street}/zip{zip}', 'AddressController@show');
在你的AddressController@show您将按顺序接受这些参数
public function show($country、$city、$street、$zip){..}
文档:您需要将ID放入一个数组中
Route::get('vault/{userId}/candidates/{candidateId}', [
'as' => 'candidates.show',
'uses' => 'CandidateController@centreCandidatesShow'
]);
<a href="{{ route('candidates.show', ['userId'=$userId, 'candidateId'=$candidateId]) }}">Link to candidate</a>
Route::get('vault/{userId}/candidateId/{candidateId})[
'作为'=>'候选人。显示',
'使用'=>'CandidateController@centreCandidatesShow'
]);
您需要将ID放入一个数组中
Route::get('vault/{userId}/candidates/{candidateId}', [
'as' => 'candidates.show',
'uses' => 'CandidateController@centreCandidatesShow'
]);
<a href="{{ route('candidates.show', ['userId'=$userId, 'candidateId'=$candidateId]) }}">Link to candidate</a>
Route::get('vault/{userId}/candidateId/{candidateId})[
'作为'=>'候选人。显示',
'使用'=>'CandidateController@centreCandidatesShow'
]);
感谢您的回复,非常有见地,非常有帮助!:)在链接中使用路由时,您应该使用数组,作为第二个参数
,感谢您的回复,非常有洞察力和帮助!:)在链接中使用路由时,应使用数组作为第二个参数