Я пытаюсь сгенерировать JSON с laravel шаблоном лезвия
$ article - это коллекция, и когда я делаю это,
Контроллер:
return view('eblogger::content.blog.json.home')->withArticles($articles[0]->toArray());
Просмотр:
{
'data': [
{
'id': {{ $articles['id'] }},
'name': "{{ $articles['name'] }}"
}
]
}
Я получил chrome Обозначает этот объект:
![enter image description here](https://i.stack.imgur.com/Tmr1R.png)
все в порядке, он возвращает объект .
Но когда я использую функции лезвия
Контроллер:
return view('eblogger::content.blog.json.home')->withArticles($articles->toArray());
Просмотр (отредактировано с более конкретным примером c) :
{
'data': [
@foreach($articles['data'] as $article)
@can('read_this_article', $article)
{
'id': {{ $article['id'] }},
'name': "{{ $article['name'] }}",
'localization' : "{{getLocalization($article['address'])}}"
}
@endcan
@endforeach
]
}
возвращает не объект как строка
![enter image description here](https://i.stack.imgur.com/lm55v.png)
Есть ли способ использовать шаблон laravel blade для генерации Json?
Редактировать
Я знаю, что есть помощник json для генерации Json из объекта. Но мне нужен способ создать пользовательский json. Мне нужно проверить полномочия и другие способы обработки перед отправкой ответа.
вывод
Мне удалось настроить поколение. проблема была очень простой. Я забыл поставить запятую после объектов. Я хорошо знаю, что это отвлекает от правильного использования лезвия.
@ mdexp, дайте мне эту ссылку: https://laravel.com/docs/6.x/eloquent-resources
действительно, это правильный путь для создания API
При создании API вам может понадобиться слой преобразования, который находится между вашими моделями Eloquent и ответами JSON, которые фактически возвращаются пользователям вашего приложения. Классы ресурсов Laravel позволяют вам выразительно и легко преобразовать ваши модели и коллекции моделей в JSON.
Спасибо