生产中引发异常,但开发中不引发异常(pluck()为null)

时间:2018-07-05 19:38:21

标签: laravel exception collections laravel-5.6

我遇到了一个奇怪的错误,使我挠头。

我正在使用一个将元信息存储在元表中的包。因此,我的模型具有元关系。该软件包使用这种简单的方法来检索元数据。

do

因此,您期望的是元数据的集合(如果存在),空集合,对吗?这就是我的本地开发服务器上显示的内容。据我了解,当尝试从关系中检索数据时,如果没有相关记录,它将返回null。

但是,在生产中,如果没有元关系(没有数据),它将返回此异常:S.selectPosts

我不知道为什么会这样。

  • 产品和开发人员都在使用Laravel public function getAllMeta() { return collect($this->meta->pluck('value', 'key')); }
  • 两个Call to a member function pluck() on null文件都是相同。我使用了差异检查器进行验证。
  • prod和dev都已运行5.6.26以确保所有依赖项都是相同

那么,我想念什么?相同的代码在dev中返回空集合,并在prod中引发异常?

1 个答案:

答案 0 :(得分:1)

该方法中的meta后面应该有括号。 (meta是具有Metable特性的方法,而不是字段。)

并没有真正解释为什么您会看到两种环境之间的差异,但这可能会解决当前的问题。