我有这个功能:
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;
最佳答案
我认为您得到的 $id 不是对象类型。 要确认使用 var_dump(),因为您的 Item::find() 函数尝试访问某些不可访问的字段。
关于php - 数组值的处理方式与手动输入不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33310647/