Php Laravel试图获得非对象的属性(来自雄辩模型)

Php Laravel试图获得非对象的属性(来自雄辩模型),php,laravel,object,Php,Laravel,Object,已经在stackoverflow上阅读了一些关于这个问题的问题,没有一个答案适用于我。 当我跑步时: $item_price = ItemPrice::where('item_name',$itemname)->first(); 然后 $item_price->price 我尝试获取非对象的属性时得到,但运行时: dd($item_price = ItemPrice::where('item_name',$itemname)->first()); 它返回的对象具有属性名称

已经在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
foreach($inventorydecoded->assets as$asset){
$i=0;
$a=0;
而($a<1){
如果($inventorydecoded->descriptions[$i]->classid==$asset->classid){
$a=1;
$classid=$inventorydecoded->descriptions[$i]->classid;
$itemname=$inventorydecoded->描述[$i]->市场\u散列\u名称;
$tradable=$inventorydecated->descriptions[$i]->tradable;
$name\u color=$inventorydecated->descriptions[$i]->name\u color;
;
}
$i++;
}//时间结束
如果($tradable==1&&strpos\u 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\u color'=>$name\u color,'price'=>$item\u price->price];
$serialized_inventory=序列化($items);
}
}//foreach的结尾
试试这个:

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

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

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

是否在
for
foreach
循环中使用此代码?是的,请显示完整代码。@AlexeyMezenin是的,我编辑了postyeah,但问题是每个项目都有价格添加
if(Is_null($item_price))dd('此项目没有价格:'。$itemname)。它将显示找不到的项目。