Об этом коде определите конечную точку API, чтобы получить подробную информацию о публикации:
/ posts / {post}
public function show($post)
{
return DB::table('posts')->where('id', $post)->get()->map(function($s){
$s->type = __(Post::TEXT[$s->type]);
return $s;
});
}
Он возвращает json следующим образом:
[
{
"id": 1,
"name": "Test"
}
]
Хотите вернуть такие данные:
{
"id": 1,
"name": "Test"
}
Итак, в конец метода добавлен ->first():
public function show($post)
{
return DB::table('posts')->where('id', $post)->get()->map(function($s){
$s->type = __(Post::TEXT[$s->type]);
return $s;
})->first();
}
Но есть ошибка:
(1/1) UnexpectedValueException
The Response content must be a string or object implementing __toString(), "object" given.
Как сделать?

Вы можете вместо того, чтобы возвращать только результат функции карты, вы можете преобразовать его в такой объект:
$result = DB::...
return (object) $result;
Чтобы убедиться, что маршрут api правильно возвращает ответ json, используйте помощник ответ json. Это попытается проанализировать любые данные и добавить правильные заголовки.
public function show($post)
{
$post = DB::table('posts')->where('id', $post)->get()->map(function ($s) {
$s->type = __(Post::TEXT[$s->type]);
return $s;
})->first()
return response()->json($post);
}