2017-07-06 56 views
1

我在使用Laravel中的DB查詢和參數綁定中的參數時遇到麻煩。

我得到這個錯誤:

Error: "Column not found: 1054 Unknown column '3' in 'on clause'" 

這是查詢的一部分:

->join('foo AS f1', function($join) use ($bar) 
     { 
      $join->on('f1.foo', '=', 'f2.foo') 
       ->on('f1.bar', '=', $bar); 
     }) 

如果我這樣做,相反,它的工作原理:

->on('f1.bar', '=', DB::raw($bar)); 

有什麼解決辦法對此?我想爲此使用參數綁定。然而,當我這樣做:

->on('f1.bar', '=', ':bar', ['bar' => $bar]); 

我得到這個:

ErrorException in Grammar.php line 196: 
Array to string conversion 
+0

你確定問題只給出片段嗎? – Chintan7027

+0

是的,我得到了答案。只有參數綁定仍然不起作用。 – Hillcow

回答

1
當您連接兩個表

加入您必須指定列名($酒吧必須等於列名的字符串)。所以如果你想發送一些參數數據,你必須使用where而不是on

->join('foo AS f1', function($join) use ($bar) 
     { 
      $join->on('f1.foo', '=', 'f2.foo') 
       ->where('f1.bar', '=', $bar); 
     }) 
+0

啊,當然,謝謝!儘管如此仍然可以將數組轉換爲參數綁定的字符串。 – Hillcow