【问题标题】:Laravel Trying to Get property of non object (from eloquent model)Laravel 试图获取非对象的属性(来自 eloquent 模型)
【发布时间】:2016-12-25 13:20:06
【问题描述】:

已经在 stackoverflow 上阅读了一些关于这个问题的问题,但这些答案都不适用于我。 当我跑步时:

$item_price = ItemPrice::where('item_name',$itemname)->first();

然后

$item_price->price

我得到 尝试获取非对象的属性,但是当我运行时:

dd($item_price = ItemPrice::where('item_name',$itemname)->first());

它返回带有属性名称、价格等的对象。我不太明白这里发生了什么。

完整代码:

foreach ($inventorydecoded->assets as $asset) {

    $i = 0;
    $a = 0;
    while ($a < 1) {

      if ($inventorydecoded->descriptions[$i]->classid == $asset->classid) {
        $a = 1;
        $classid = $inventorydecoded->descriptions[$i]->classid;
        $itemname = $inventorydecoded->descriptions[$i]->market_hash_name;
        $tradable = $inventorydecoded->descriptions[$i]->tradable;
        $name_color = $inventorydecoded->descriptions[$i]->name_color;

  ;

      }
      $i++;
    } // end of while
      if ($tradable === 1 && strpos_arr($itemname, $blacklist) == false ) {
            $item_price = ItemPrice::whereItemName($itemname)->first();
      //     dd(ItemPrice::where('item_name',$itemname)->first());
            $items[] = ['assetid' => $asset->assetid,'classid'=> $classid,'itemname'=>$itemname,'name_color'=>$name_color,'price'=> $item_price->price];
            $serialized_inventory = serialize($items);

      }
  } // end of foreach

【问题讨论】:

  • 您在forforeach 循环中使用此代码吗?是这样,请显示完整的代码。
  • @AlexeyMezenin 是的,我做了,已编辑帖子

标签: php laravel object


【解决方案1】:

您在循环中使用此查询,因此其中一个为空并返回 null。所以你需要做简单的检查:

if (is_null($item_price)) {
    // There is no price for this item, do something.
}

【讨论】:

  • 是的,但问题是每件商品都有价格
  • 添加if (is_null($item_price)) dd('There is no price for this item: '.$itemname);。它会告诉你它找不到什么项目。
【解决方案2】:

试试这个:

$item_price = ItemPrice::whereItemName($itemname)->first();

【讨论】:

    猜你喜欢
    • 2014-05-05
    • 1970-01-01
    • 2015-08-14
    • 2021-06-30
    • 1970-01-01
    • 2015-09-22
    • 2017-03-20
    • 2014-03-25
    • 2015-01-25
    相关资源
    最近更新 更多