我一直在研究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 ( ) )
在开发版本中,我按照预期获得过滤后的集合。如何更改代码以在开发和生产环境中工作?
答案 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>