Laravel 5.7 Сериализация и десериализация объектов - PullRequest
1 голос
/ 16 января 2020

Моя проблема.

У меня есть 2 laravel экземпляра, оба работают на разных IP, но среда и версии одинаковы.

& У меня есть 1 модель, которая связана с другими дочерними моделями.

Я хочу передать весь объект через API и сохранить его на другом конце.

надеюсь, это прояснит мою проблему.

Ответы [ 2 ]

1 голос
/ 16 января 2020

Чтобы преобразовать модель в JSON, вы должны использовать метод to Json. Метод to Json является рекурсивным, поэтому все атрибуты и отношения будут преобразованы в JSON. Вы также можете указать JSON опции кодирования, поддерживаемые PHP:

 //...
 $users = App\User::with('posts')->all();
 return $users->toJson();
 //return $users->toJson(JSON_PRETTY_PRINT);

Затем, когда дело доходит до потребления API, вы можете получить json уже отправленного через необработанный запрос тела данных, например

// First we fetch the Request instance
$request = Request::instance();

// Now we can get the content from it
$content = $request->getContent();
1 голос
/ 16 января 2020

Насколько я понимаю, ты можешь это сделать. Вот простой пик:

$user = App\User::find(1);

return $user->toJson();

Который можно найти здесь . Скажем, у вас есть модель пользователя, и вы хотите получить к ней доступ извне. Вы можете создать конечную точку API (с аутентификацией, если требуется. Однако, очевидно, рекомендуется использовать безопасную аутентификацию, особенно если ваша конечная точка API обращается к любой модели напрямую), которая будет принимать идентификатор пользователя и передавать весь пользовательский объект поверх ответа API.

...