能够使用Eloquent在Slim应用程序的生产版本中获取集合,但不能过滤数据

时间:2016-10-09 20:50:36

标签: eloquent slim

我一直在研究Slim 2,刚刚开始部署到生产服务器。到目前为止,一切似乎都运转良好。我能够登录,所以我知道我正好连接到数据库。它识别出我登录的对象,因为我已经识别出该用户具有哪些权限。我有另一个表有几个条目。我什么时候......

$collection = collect($app->item->where('user_id', $userId)->get());

然后......

print_r($collection);

在生产服务器上,我看到整个集合就像我在开发服务器上那样,但是当我添加...

$pack = $collection->where('status', 1);

而不是打印集合,尝试打印包像......

print_r($pack);

这条消息回来了......

Illuminate\Support\Collection Object ( [items:protected] => Array ( ) )

在开发版本中,我按照预期获得过滤后的集合。如何更改代码以在开发和生产环境中工作?

3 个答案:

答案 0 :(得分:6)

很可能您的生产数据库中没有 status 为1的记录,并且您确实在开发中有 status 为1的记录。

直接在生产中检查数据库以进行验证。

答案 1 :(得分:2)

显然,该集合中只包含字符串,或者它只匹配一个字符串......这有效!

$pack = $collection->where('status', '1');

答案 2 :(得分:2)

检查您的Eloquent版本。在5.3集合使用where()时使用严格比较并使用松散之前,您使用whereLoose()但从5.3 where()开始是松散的比较,whereStrict()是严格的方法调用。< / p>