已经在stackoverflow上阅读了有关此问题的一些问题,但这些答案都不适用于我。 我跑的时候:
$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
它返回了具有属性名称,价格等的对象。我真的不明白这里发生了什么。
完整代码:
{{1}}
答案 0 :(得分:2)
您在循环中使用此查询,因此其中一个为空并返回null
。所以你需要做一个简单的检查:
if (is_null($item_price)) {
// There is no price for this item, do something.
}
答案 1 :(得分:0)
试试这个:
$item_price = ItemPrice::whereItemName($itemname)->first();