2017-06-17 41 views
0

我試圖從多個表中獲取數據。我已存儲的語句組合在$加入陣列,並通過該數組來模擬
這裏是我試過到目前爲止 -如何傳遞連接數組以在laravel中選擇查詢5.2

$tbl_name="user_master"; 
$select= ['user_master.*', 'country.country_name', 'city.city_name', 'login_master.email_id', 'login_master.password']; 
$joins=[ 
     "'country', 'user_master.country_id', '=', 'country.country_id'", 
     "'city', 'user_master.city_id', '=', 'city.city_id'", 
     "'login_master', 'user_master.user_id', '=', 'login_master.user_id'" 
     ]; 
$users=$obj->getdata($tbl_name,$select,$joins); 

型號 -

public function getdata($tbl_name,$select,$joins) 
    { 
     $users = DB::table($tbl_name) 
       ->join($joins) 
       ->select($select) 
       ->paginate(5); 

       return $users; 
    } 

我想通過$連接陣列查詢但顯示錯誤 -
對於Illuminate \ Database \ Query \ Builder :: join()缺少參數2,在第61行中調用/opt/lampp/htdocs/demo_laravel/app/Models/Userdata.php並定義爲

如果我試試 -

$users = DB::table($tbl_name) 
       ->join('country', 'user_master.country_id', '=', 'country.country_id') 
       ->join('city', 'user_master.city_id', '=', 'city.city_id') 
       ->join('login_master', 'user_master.user_id', '=', 'login_master.user_id') 
       ->select($select) 
       ->paginate(5); 

       return $users; 

它工作正常,但當我傳遞數組加入它顯示錯誤。
如何解決它?
請幫幫我。

+0

我想加盟將不會接受數組參數。用你的第二個例子,這很清楚。 – JYoThI

+0

加入可以接受數組,但不知道如何 – Deepak

回答

0

試試這個:

$joins格式爲:

$joins = [ 
    ['country', 'user_master.country_id', '=', 'country.country_id'], 
    ['city', 'user_master.city_id', '=', 'city.city_id'], 
    ['login_master', 'user_master.user_id', '=', 'login_master.user_id'], 
]; 

和型號:

public function getdata($tbl_name, $select, $joins) 
{ 
    $users = DB::table($tbl_name); 

    foreach ($joins as $join) { 
     $users = $users->join(...$join); 
    } 

    $users = $users 
     ->select($select) 
     ->paginate(5); 

    return $users; 
} 
+0

感謝您的答案,但它不工作。獲取相同的錯誤。 – Deepak