我基本上有一个包含三列的视图
| Users | User's Profile | Profile's Data
第一列列出了所有用户和用户的配置文件类似于用户的子列,其中将显示用户创建的配置文件。单击用户1时,视图中会出现类似这样的内容。然后单击配置文件,相应的配置文件数据应显示在第3列中。
| user 1 | User 1- Profile 1 | User 1- Profile 1's data
| user 2 | User 1- Profile 2 | User 1- Profile 1's data
| user 3 | User 1- Profile 3 | User 1- Profile 1's data
所有这些事情都应该在同一个观点上。我已经在视图中显示了第一批用户。但是,当点击用户(用户1或用户2等)时,不能显示相应用户的简档。我使用GET方法显示第1列(用户)和使用用户ID的GET方法来获取所有配置文件。我不知道如何将所有三组数据(用户,用户配置文件和配置文件的数据)传递到同一视图。这是我尝试过但很困惑如何继续从这一点开始。
这是我的路线
Route::get('/candidates', [
'uses' => 'candidateController@showClient',
'middleware' => 'auth']);
Route::get('/candidates/{id}', [
'uses' => 'candidateController@showProfile',
'middleware' => 'auth']);
这是我的控制器
public function showClient(){
$client = new User();
$client_details = $client
->where('role','client')
->get();
return view('admin')->with('client_details',$client_details);
}
public function showProfile($id){
$client = new User();
$client_details = $client
->where('role','client')
->get();
$profile = new Profile();
$user_profiles = $profile
->where('user_id',$id)
->get();
return view('admin')->with('client_details',$client_details)->with('user_profiles',$user_profiles);
}
第二条路线正常Route::get(/candidates{id},..)
。我该怎么做呢?
答案 0 :(得分:2)
路线档案
Route::get('/candidates/{id?}', [
'uses' => 'candidateController@showProfile',
'middleware' => 'auth'
]);
这里,通过在id参数上添加问号使其成为可选参数。
public function showProfile($id = null) {
$client_details = User::where('role', 'client')->get();
if (!is_null($id)) {
$profile_details = Profile::where('user_id', $id)->get();
} else {
$profile_details = [];
}
return view('admin', compact('client_details', 'profile_details'));
}
现在,在视图中,检查配置文件详细信息是否为空,如果是,则为 显示所有客户页面,否则显示其个人资料页面。
答案 1 :(得分:0)
路线档案
Route::get('/candidates', [
'uses' => 'candidateController@showProfile',
'middleware' => 'auth']);
Route::get('/candidates/{id}', [
'uses' => 'candidateController@showProfile',
'middleware' => 'auth']);
这是控制器
public function showProfile($id = null){
$client = new User();
$client_details = $client
->where('role','client')
->get();
if (!is_null($id)) {
$profile = new Profile();
$user_profiles = $profile
->where('user_id',$id)
->get();
}
else{
$user_profiles = [];
}
return view('admin')->with('client_details',$client_details)->with('user_profiles',$user_profiles);
}