2014-10-10 99 views
0

我想創建一個使用別名laravel自聯接,但它似乎並不想要撿起它,因爲我得到一個錯誤,說沒有找到列p1.sub_menup2.5列。這是我加盟:列未在laravel找到

$menu = DB::table('pages AS p1') 
     ->leftJoin('pages AS p2', 'p1.sub_menu', '=', 'p2.'.$id.'')->get(); 
+1

顯然你沒有'pages.5'場,你呢?它是'p2.id'。 – 2014-10-10 09:58:44

回答

0

錯誤,因爲你leftJoin聲明

PARAMS在leftJoin聲明是要使用關係列。

$menu = DB::table('pages AS p1')->leftJoin('pages AS p2', 'p1.sub_menu', '=', **'p2.'.$id.''**)->get(); 

我的解決辦法是:

$menu = DB::table('pages AS p1')->leftJoin('pages AS p2', 'p1.sub_menu', '=', 'p2.sub_menu')->where("p2.menu_id", "=", $menu_id)->get(); 
+0

它說,p2.id是一個未知的列,但有一個id列 – Chibi 2014-10-10 10:26:05

+0

你可以使用''?php var_dump(DB :: getQuerylog()?>''來查看mySQL查詢來調試我不知道你的數據庫結構,所以我的查詢可能是錯誤的 – 2014-10-10 11:15:05

+0

這可能是一個愚蠢的問題,但var_dump(DB :: getQuerylog()會在連接語句? – Chibi 2014-10-10 11:33:03