Я занимаюсь разработкой веб-приложения, которое собирает данные из базы данных и печатает. Я использую фреймворк Laravel. Я показал ниже использование кода. Я могу отобразить ответ JSON непосредственно в моем коде PHP, но если я попытаюсь выполнить итерацию по ответу JSON, я ничего не смогу получить.
Вот как я генерирую объект JSON, используя библиотеку Laravel Facades:
$worklogs = Response::json($data, $this->getStatusCode(), $headers);
Вот код, который я использовал для передачи данных на страницу PHP:
return view('index')->with('worklogs', $worklogs);
Я могу распечатать собранные данные со страницы PHP, используя следующий код:
{{ $worklogs }}
Но если я попытаюсь перебрать его, используя foreach
В цикле возникает ошибка, как показано:
На странице PHP вот как я это кодировал, но он не работает:
Прежде всего, как сказал Богдан Бочоака в своем ответе, вы используете только Response::json
функция, когда вы хотите вернуть только Json (в основном для API, чтобы другие приложения могли получить доступ к вашим данным JSON). Например, приведенный ниже код вернет JSON, который может быть прочитан мобильным приложением.
$worklogs = WorkLog::all();
return Response::json([
'worklogs' => $worklogs
], $headers);
Насколько я понимаю ваш вопрос, вы хотите передать данные непосредственно в представление, поэтому ваш код в идеале должен быть следующим:
$worklogs = WorkLog::all();
return view('index',compact('worklogs'));
(Обратите внимание, что выше я решил использовать compact()
вместо with->()
потому что его чище)
Затем вы можете перебирать свой код так, как вам нужно:
@foreach($worklogs as $worklog)
<td>{{$worklog->id}}</td>
<td>{{$worklog->name}}</td>
<td>{{$worklog->company}}</td>
@endforeach
Я не уверен, что понимаю ..
во-первых, вот как вы возвращаете JSON:
return Response::json([
'hello' => $value
], $headers);
Второе: что вы имеете в виду, повторить jSon?
В-третьих: ваши сообщения об ошибках утверждают, что неопределенная переменная $ datas .. не $ data, $ datas. Вы посылаете параметр $ data в представление?