Routes 具有多个ID的Laravel 5路线’;s

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

我想把两组ID传给一条路线

第一个ID是经过身份验证的用户的ID,例如示例3,第二个ID是候选用户的ID

所以我想让它做的是:vault/3/候选者/120

以下是我想要的路线:

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'
]);

感谢您的回复,非常有见地,非常有帮助!:)在链接中使用路由时,您应该使用数组,作为第二个参数
,感谢您的回复,非常有洞察力和帮助!:)在链接中使用路由时,应使用数组作为第二个参数