laravel 5.3中的对象访问问题?

时间:2016-12-28 07:26:58

标签: laravel laravel-5.3

我在json中传递对象数组并试图在foreach循环中访问它但是我收到错误"试图获取非对象的属性"

JSON

  

{" I":[{"名称":" Siddhesh   米什拉""移动":" 7798645895""两性":" M"},{"名称&#34 ;:" PRATIK   潘德""移动":" 7798645891""两性":" M"}]

foreach循环

foreach ($request->i as $key => $insrtobj) {
 if($insrtobj->name && $insrtobj->mobile && $insrtobj->gender){
 }
 else
     $response = response()->json(['data'=>[], 'error'=>1, 'success'=>0,     'error_msg'=>'request with mandatory param','message'=>'check the input data']);
}

2 个答案:

答案 0 :(得分:1)

Laravel Request对象使用json_decode自动解码json输入,但它传递true作为第二个参数将对象转换为数组。因此,当从请求访问json数据时,您需要将其视为关联数组,而不是对象。

if ($insrtobj['name'] && $insrtobj['mobile'] && $insrtobj['gender']) {

答案 1 :(得分:0)

将JSON数据转换为数组形式并使用它......:

$arrData = json_decode(YOURJSONDATA, true);
foreach ($arrData as $key => $insrtData) {
 //your rest of code...
}

注意:如果为TRUE,则返回的对象将转换为关联数组。 Docs