невозможно сохранить данные из $ request в mysql с помощью Laravel 5.4

Я передаю запрос POST с 3 переменными

Id (Randomly Generated),
Name (Specified)
Capacity (Specified)

с поста Angular Service. Они находятся в полезной нагрузке POST, а также видны в $request переменная в методе контроллера ресурсов Laravel «store ()».

public function store(Request $request)
{
$servers = new Server();
return $request->getContent();
}

Здесь, в инструменте разработчика Chrome> сеть> POST-запрос> при предварительном просмотре, я получаю это

[{name: "bakar", capacity: 50, id: 8012}]
0: {name: "bakar", capacity: 50, id: 8012}

но когда я использую

public function store(Request $request)
{
$servers = new Server();
$data = $request->getContent();
$servers->id = $data->id;
$servers->name = $data->name;
$servers->capacity = $data->capacity;
$servers->save();
}

В вышеупомянутом методе я получил исключение ошибки, заявляя:

«Попытка получить свойство необъекта»

Как я могу решить это?

1

Решение

Основываясь на вашем образце JSON, $data должен содержать массив, который затем содержит один объект в своем первом индексе.

Поэтому вы не можете сделать, например, $data->id потому что это предполагает, что $ data имеет свойство с именем $ id … это не так, объект в своем первом индексе делает.

Так просто $data[0]->id позволит вам получить доступ к этому индексу, а затем получить доступ к свойству $ id объекта в этом индексе. Конечно, если ваш запрос содержит несколько элементов в массиве, вам может понадобиться использовать цикл, чтобы просмотреть их все и получить значения. Это зависит от того, что вы ожидаете и что вы собираетесь с этим делать.

Или, возможно, ваш PHP правильный, и ваш клиент отправляет данные в неправильном формате. Не ясно, каков желаемый результат на самом деле.


Редактировать:

Так как кажется, что $data все еще является строкой JSON, когда она поступает в вашу функцию store (), вам нужно ее декодировать. Итак, сначала напишите

$data = json_decode($request->getContent());

(вместо $data = $request->getContent();), а затем действуйте, как указано выше.

Полный образец:

public function store(Request $request)
{
$servers = new Server();
$data = json_decode($request->getContent());
$servers->id = $data[0]->id;
$servers->name = $data[0]->name;
$servers->capacity = $data[0]->capacity;
$servers->save();
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector