Php Laravel试图获得非对象的属性(来自雄辩模型)
已经在stackoverflow上阅读了一些关于这个问题的问题,没有一个答案适用于我。 当我跑步时: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()); 它返回的对象具有属性名称
$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)代码>。它将显示找不到的项目。