【问题标题】:Trying to get property 'times' of non-object试图获取非对象的属性“时间”
【发布时间】:2020-01-10 15:14:31
【问题描述】:

这是一个奇怪的问题(至少对我来说),我正在尝试将一个对象传递给这样的函数:

272.  $runs[$key]['position'] = getTimePosition($run->times,$user['id']);
273.  dd($run->times);

当我这样做时,我得到了错误

message: "Trying to get property 'times' of non-object", exception: "ErrorException",…}
exception: "ErrorException"
file: "C:\Users\Test\PhpstormProjects\test\app\Helpers\Helper.php"
line: 272
message: "Trying to get property 'times' of non-object"

但是,如果我转储 $run->times,我得到的似乎是正确的,一个带有“times”的 Eloquent 对象,如下所示...

我在这里缺少什么?困扰我一个小时了

【问题讨论】:

  • 属性名是时间,不是时间
  • 另外,如果$run->times值是一个雄辩的集合实例,你不能直接访问模型属性。您应该迭代并获取每个模型的属性,或者只获取一个模型实例。

标签: php laravel laravel-5 eloquent


【解决方案1】:

我猜你的结果集返回多行,所以你需要使用循环来迭代它们,或者你可以通过使用来获得结果。 $run[0]->time

如果你想从 DB 中获取一行,你应该使用它。

    $run = DB::table('tableName')->where('condition')->first();
    $run->time

它会起作用的。

【讨论】:

  • 谢谢!非常感谢
【解决方案2】:

您的属性名称是 $run->time,而不是 $run->times

$runs[$key]['position'] = getTimePosition($run->time,$user['id']);

【讨论】:

    【解决方案3】:

    试试这个

    if($run) {
        $runs[$key]['position'] = getTimePosition($run->times,$user['id']);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-11
      • 2014-12-09
      相关资源
      最近更新 更多