2016-12-25 83 views
1

已经看了一些关于计算器这个问题,并没有任何的问题的答案适用于我。 当我运行:Laravel试图让非对象的属性(从雄辩的模型)

$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 
+0

你在'for'或'foreach'循环中使用这段代码吗?是的,请显示完整的代码。 –

+0

@AlexeyMezenin是的,我做到了,使用时 – Michael

回答

2

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

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

是的,但问题是有代价的每个项目 – Michael

+0

添加'如果(is_null($ ITEM_PRICE))DD(“有没有价格为这个项目:”。$ ITEMNAME);'。它会告诉你它无法找到的物品。 –

+1

你是对的,一个项目有空字段 – Michael

0

试试这个:

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

同样的错误。 – Michael

+0

请出示整个控制器或功能后期编辑 – GabMic

+0

是的,我做到了,我的编辑后 – Michael