DirecTwiX
@DirecTwiX
"display: flex;" уже предлагали?

Можно ли упростить как-нибудь эту выборку?

Стрелочных функций в пхп нет?
$posts = Post::where('user_id', 1)
    ->orderBy('created_at', 'desc')
    ->get();

$res = $posts->map(function ($item, $key) {
    $tags = $item->tags->map(function ($tag) {
       return [
           'id' => $tag->id,
           'name' => $tag->name
       ];
    });
    return [
        'id' => $item->id,
        'user' => $item->user,
        'tags' => $tags,
        'title' => $item->title,
        'type' => $item->type
    ];
});


return response()->json($res);


Или может у коллекций есть какой-нибудь метод, который позволить сократить вот это?
$tags = $item->tags->map(function ($tag) {
   return [
       'id' => $tag->id,
       'name' => $tag->name
   ];
});
  • Вопрос задан
  • 177 просмотров
Решения вопроса 3
@WQP
Смотрите документацию по scope
Ответ написан
Комментировать
@beatleboy
Вот классная вещь, - пакет реализующий паттерн Presenter для Laravel, должно подойти под вашу задачу
Ответ написан
Комментировать
AmdY
@AmdY
PHP и прочие вебштучки
return Post::where('user_id', 1)
    ->orderBy('created_at', 'desc')
    ->with('tags');

with подтянет вам теги, а фреймворк всё сам сериализирует в json
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы