Итерация данных блейд-json

Я пытаюсь выполнить итерацию в цикле foreach для объекта json, но безуспешно, он продолжает выдавать мне ошибку в отношении объектов html.

Данные, которые я пытаюсь вывести в моем foreach, приведены выше:

Данные: переменная, в которой хранятся указанные выше данные, называется «$ product-> tags ['data']»

{"tags":[{"type":"circle","points":[[1.0449999570846558,0.5450000166893005],[0.9850000143051147,0.4399999976158142]],"popup":{"title":"my title","description":"my description"}},{"type":"rectangle","points":[[0.03500000014901161,0.125],[0.3400000035762787,0.6000000238418579]],"popup":{"title":"roupa","description":"guardar roupa"}}]}

Мой код:

@foreach($product->tags['data']->tags as $tag){
{{$tag->type}}
}

Моя ошибка: Неверный argument supplied for foreach()


person Marco Santos    schedule 12.10.2016    source источник
comment
Убедитесь, что $product->tags['data']->tags является массивом.   -  person Avag Sargsyan    schedule 12.10.2016


Ответы (1)


Предполагая, что ваш json:

$json='{"tags":[{"type":"circle","points":[[1.0449999570846558,0.5450000166893005],
[0.9850000143051147,0.4399999976158142]],
"popup":{"title":"my title","description":"my description"}},
{"type":"rectangle","points":[[0.03500000014901161,0.125],
[0.3400000035762787,0.6000000238418579]],"popup":{"title":"roupa","description":"guardar roupa"}}]}';

Я предполагаю, что вы не декодируете json, когда передаете его в представление, поэтому вы должны сделать это в своем контроллере:

return view('sample')->with('data',json_decode($json));

json_decode — это функция для декодирования ваших данных json, чтобы их можно было повторить в лезвии.

Теперь в шаблоне блейда вы можете перебирать теги следующим образом:

@foreach($data->tags as $tag)
  {{$tag->type}}
  <br/>
@endforeach
person bytesarelife    schedule 12.10.2016