【发布时间】:2017-02-18 07:00:53
【问题描述】:
我一直在开发 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 ( ) )
如我所料,我在开发版本中获得过滤后的集合的位置。如何更改代码以同时在开发和生产环境中工作?
【问题讨论】:
-
会不会是您的集合中没有状态为 1 的产品正在生产中,但您确实有一些状态为 1 的正在开发中?
-
你试过链接 where 函数吗?例如:$app->item->where('user_id', $userId)->where('status', 1)->get();并确保数据库有一些状态为 1 的行。
-
我已验证生产数据库和返回的集合中有状态为 1 的项目。当我制作有效的集合时,我尝试成功链接 where('status', 1) ,但我还需要进一步过滤 where status = 1 和 where status = 0 并且我不想点击 db超过必要。
-
对于您登录的特定用户呢?该用户在生产中是否存在状态 = 1 的项目?
-
@quickshiftin 我可以查看该用户的集合,而不是从那个用户制作的过滤下来的集合,就像我上面所说的那样,当我将 where's 链接在一起时,它也可以工作。