2013-01-08 191 views
2

我正在嘗試使用Laravel 4中的where子句構建對我的數據庫的調用。聽起來很簡單,但是我得到一個沒有道理的錯誤。該調用的工作原理:如何在Laravel中執行where子句

return MainContact::all(); 

當我查看該頁面,我得到我的數據的JSON表示,用我所有的數據,就像你所期望的。它包括這樣的:

... "flag":1 ... 

所以,當我嘗試這樣做,因爲Laravel文檔中解釋說:

return MainContact::where('flag', '=', '1'); 

,你會覺得這是可行的,但事實並非如此。我已經嘗試了數字作爲字符串和整數,並且都不起作用。我得到這個錯誤:

ErrorException: Catchable Fatal Error: Object of class 
Illuminate\Database\Eloquent\Builder could not be converted to string in 
/Users/universal/Sites/universalLaser/leads/vendor/symfony/http-foundation/Symfony/ 
Component/HttpFoundation/Response.php line 351 

Laravel 4中的where子句有些變化嗎?或者我不理解如何去做?

+0

嘗試返回MainContact :: where('flag','=','1') - > first();但我沒有L4的經驗 – afarazit

回答

9

你嘗試過:

return MainContact::where('flag', '=', '1')->get(); 

或者更簡單地說:

return MainContact::where_flag(1)->get(); 
+0

第二個不起作用,但第一個是。謝謝,aowie1! – sehummel

+0

好吧,我將該值轉換爲一個整數,這可能是問題。此外,您可以使用 - > first()而不是get()返回單個記錄 – aowie1

+0

這很好理解。 – sehummel

1

你需要有調用get()方法就結束。

return MainContact::where('flag', '=', '1')->get(); 
0

謝謝指導!

我使用的類別表:

  • ID
  • PARENT_ID

和路由通過:

<?php 

Route::get('/', function() 
{ 
    return Categories::where('parent_id', '>', 0); 
}); 

一個返回的錯誤是類照亮對象\數據庫\雄辯\生成器無法轉換爲字符串

所以我嘗試 - > get()在它的結束代碼工作。