2017-08-11 149 views
0

我认为这很容易解决,但我一直无法弄清楚。我试图用where()声明过滤我的数据库。Laravel - 无法使用'Where'来过滤数据库查询

的Laravel文档(https://laravel.com/docs/5.4/queries)指出这一点:

DB::table('satellites')->where('satname', 'falcon')->get(); 

我想查询的文档中所述,但没有不幸的是工作。

我想在我的数据库satellites的数据库列satname中用字falcon来过滤该数据库。

我也试过:->where('satname', '=', 'falcon')

我认为我只是在做一个简单的错误而忘记了一些东西!

+0

任何错误?我想你忘了在页面顶部使用这个“使用数据库”。 –

+0

你能发布你的错误日志吗? –

+0

@BikashP我在我的控制器中有'使用数据库'。 –

回答

0

你说的“过滤器”,通过看看它的意见,这意味着不是确切的搜索,这意味着不是确切的'猎鹰',但含有猎鹰的东西。你要找的是LIKE运算符。

DB::table('satellites') 
    ->whereRaw("satname LIKE 'falcon%'") 
    ->get(); 

其中satname与猎鹰开始这将返回什么:猎鹰1猎鹰9,猎鹰318929等

获取包含隼的一切,用 “satname LIKE '%猎鹰%'”。这包括诸如:猎鹰9,测试猎鹰,测试猎鹰82等

+0

我在输入我的文章之前浏览过评论,并没有看到评论的解决方案。发布后,我看到@aynber已经评论了解决方案。很抱歉! –