【问题标题】:Laravel 4 query builder - not null column not foundLaravel 4 查询生成器 - 未找到非空列
【发布时间】:2014-02-21 19:23:21
【问题描述】:
Route::get('/test', function(){
    return DB::table('table')->where_not_null('column')->get();
});

在 Laravel 4 中,我有以下路线,显然替换了表和列。我把它放在控制器里,但它不工作,所以我把它移到了一条测试路线。

我得到的错误是:

SQLSTATE[42S22]: Column not found: 1054 Unknown column '_not_null' in 'where clause' (SQL: select * from `table` where `_not_null` = column)

https://tower.la.utexas.edu/docs/database/fluent#where

文档说:

return DB::table('table')->where_null('column')->get();

【问题讨论】:

    标签: php sql laravel laravel-4


    【解决方案1】:

    应该是

    return DB::table('table')->whereNull('column')->get();
    

    或者

    return DB::table('table')->whereNotNull('column')->get();
    

    您使用过where_not_null。这是right reference

    【讨论】:

      【解决方案2】:

      查看正确的写法:http://laravel.com/docs/queries#selects

      DB::table('table')->whereNotNull('column')->get();
      

      【讨论】:

        【解决方案3】:

        文档指出,在表声明之后,您应该放置查询构建器信息,where_null、where_not_null、where_in。

        但是这不起作用。我不知道为什么,这没有意义,而且令人沮丧。但是,这确实有效。

            return DB::table('user')->whereuserName('not_null')->get();
        

        通过将列名放置在文档说明放置查询的位置,并将查询放置在文档说明放置列的位置,您就可以执行查询。需要注意的是,camel case 在查询中被转换为snake case,所以该列必须命名为 user_name。

        我发布这个是因为我尝试用谷歌搜索它但找不到任何东西。

        【讨论】:

        • 我在原帖中做了。 laravel.com/docs/queries 上面是官方文档,下面可能是官方文档? (他们更加充实)tower.la.utexas.edu/docs/home
        • 您链接到的文档适用于 Laravel 3。
        • @Morgon 你说得对,我使用了不正确的文档。我的错误。很抱歉造成混乱,我认为是 4 并且它们足够相似,以至于我认为在网站上是错误的。
        猜你喜欢
        • 2016-11-03
        • 2013-06-28
        • 1970-01-01
        • 2014-05-13
        • 2017-12-29
        • 2014-03-13
        • 2015-12-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多