我有这个功能:
public function getReward($formattedArray, $key){
$id = $formattedArray[$key][0];
//dd($id); //Returns 1
$reward = Item::find($id);
return $reward;
}
问题部分是:
$reward = Item::find($id);
我有dd()id变量,它返回预期的值1,然后在最后的静态查找函数中使用它。然后我使用此函数“尝试获取非对象的属性”接收错误。
然后我这样做:
$reward = Item::find($id); //Changed to...
$reward = Item::find(1);
唯一的区别是我手动将整数1输入静态查找功能。代码完美无误地运行,我可以访问返回的对象。
工作示例:
$reward = Item::find(1);
return $reward;
工作示例:
$reward = Item::find("1");
return $reward;
非工作示例:
$reward = Item::find($formattedArray[$key][0]);
return $reward;
我也尝试过像这样的整数:
$id = $formattedArray[$key][0];
$idInt = (int) $id;
$reward = Item::find($idInt);
return $reward;
答案 0 :(得分:0)
我认为$ id,你得到的不是对象类型。 要确认使用var_dump(),因为你的Item :: find()函数试图访问一些无法访问的字段。