2017-06-25 53 views
0

當新用戶註冊並重定向到配置文件頁面時。所有這些$userconatact,$qualification$profileimage變量都爲空。主頁設置爲if (condition)有按鈕來填寫表單或向用戶顯示可用數據。有三種形式,用戶必須逐一填寫這些表格。所有這些變量或其中一個可能爲空,但我仍然想要發送空值來查看。有什麼辦法可以讓這個觀點發生。當一個或多個變量爲空時,如何將多個變量發送到laravel中的視圖

class ProfileController extends Controller 
{ 
    public function showprofile($type=null, $id='id'){ 
     $contactquery = Usercontact::where('user_id',Auth::user()->id)->select('*')->get(); 
     $usercontact = $contactquery->toArray(); 
     $qualificationquery = userqualification::where('user_id',Auth::user()->id)->select('*')->get(); 
     $qualification = $qualificationquery->toArray(); 
     $profileimagequery = Profileimage::where('user_id',Auth::user()->id)->select('id','user_id','profileimage')->get(); 
     $profileimage = $profileimagequery->toArray(); 

     return view('home')->withUsercontact($usercontact)->withQualification($qualification)->withProfileimage($profileimage); 


    } 
} 

我嘗試使用的if語句,但如果沒有工作

return view('home') 
if(!empty($usercontact)){->withUsercontact($usercontact)} 
if(!empty($qualification)){->withQualification($qualification)} 
if(!empty($profileimage)){->withProfileimage($profileimage);} 

有沒有辦法使用if statements這樣做很容易。

回答

0

1)使用compact會自動爲您創建鍵值對。

return view('home')->compact('usercontact','qualification','profileImage') 

2)以下是對您的代碼的其他一些改進。您可以使用Auth Facade來訪問登錄用戶。

$usercontact = Auth::user(); 

3)定義你的用戶模型relationships這種接入資格。這將返回一個集合。

$qualification = $usercontact->qualifications; 
+0

我的變量來獲取數據包含陣列和緊湊返回空值是沒有用的 – Santosraj

0

您可以使用compact將數據從控制器發送到視圖。

return view('home')->compact('usercontact', 'qualification', profileimage');

你的代碼可以如下重構。

public function showprofile($type=null, $id='id') 
     { 
      $usercontact = Usercontact::where('user_id',Auth::user()->id)->first(); 
      $qualification = Userqualification::where('user_id',Auth::user()->id)->first(); 
      $profileimage = Profileimage::where('user_id',Auth::user()->id)->select('id','user_id','profileimage')->first(); 

     return view('home')->compact('usercontact', 'qualification', 'profileimage'); 
     } 

請注意代碼中的Userqualification模型名稱按照約定。嘗試添加關係到您的模型,使您的查詢更容易。

0

嘗試這種風格將數據發送到瀏覽

return view('home',['Usercontact'=>$usercontact,'Qualification'=>$qualification,'Profileimage'=>$profileimage]); 

鑑於你就可以通過數組鍵