数组的值与手动输入的处理方式不同

时间:2015-10-23 20:11:57

标签: php mysql arrays laravel eloquent

我有这个功能:

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;

1 个答案:

答案 0 :(得分:0)

我认为$ id,你得到的不是对象类型。 要确认使用var_dump(),因为你的Item :: find()函数试图访问一些无法访问的字段。