Ответ 1
Оригинальный ответ для Laravel 3
Красноречивый имеет метод to_array()
Из документов:
Метод to_array автоматически захватит все атрибуты на вашей модели, а также любых загруженных отношений.
$user = User::find($id);
return Response::json($user->to_array());
или
return Response::eloquent($user);
Если вы свободно говорите, вы можете сделать так, как предложил Синан, и изменить глобальную конфигурацию, чтобы возвращать ассоциативный массив, а не объекты.
Кроме того, вы можете конвертировать объект в JSON и из него, чтобы преобразовать его в массив, хотя в большинстве случаев предпочтительнее использовать глобальный параметр. Вы можете использовать следующее в проектах, где вы предпочитаете объекты обычно, но в некоторых случаях края нужен массив. Этот метод не будет хорошо работать с Eloquent, используйте вышеприведенные методы в этом случае.
$users = DB::table('users')->where('name', '=', 'david')->get();
return array_map(function($val)
{
return json_decode(json_encode($val), true)
}, $users);
Другим вариантом будет временное изменение конфигурации времени выполнения
Config::set('database.fetch', PDO::FETCH_ASSOC);
Для Laravel ~ 4
В Laravel 4 все имена методов соответствуют стандартам PSR-2.
$user = User::findOrFail($id);
return Response::json($user->toArray());
// In Laravel 5 onward the functions are preferred to facades.
return response()->json($user->toArray());