如何在Laravel中执行where子句

时间:2013-01-08 15:57:37

标签: php laravel

我正在尝试使用Laravel 4中的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子句有什么变化吗?或者我不明白怎么做?

3 个答案:

答案 0 :(得分:9)

你试过了吗?

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

或更简单:

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

答案 1 :(得分:1)

你需要在那里调用get()方法。

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

答案 2 :(得分:0)

感谢您的指导!

我使用类别表:

  • ID
  • 名称
  • PARENT_ID

路线:

<?php

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

返回错误是类Illuminate的对象\ Database \ Eloquent \ Builder无法转换为字符串

所以我尝试使用结束代码中的&gt; get()。