Исходя из вашего примера JSON, $data
должен содержать массив, который затем содержит один объект в своем первом индексе.
Поэтому вы не можете сделать, например, $data->id
поскольку предполагается, что $ data имеет свойство с именем $ id ... его нет, объект в своем первом индексе имеет.
Так что просто $data[0]->id
позволит вам получить доступ к этому индексу, а затем получить доступ к свойству $ id объекта с этим индексом. Конечно, если ваш запрос содержал несколько элементов в массиве, вам может понадобиться использовать цикл, чтобы просмотреть их все и получить значения. Это зависит от того, что вы ожидаете, и что вы собираетесь с этим делать.
Или, возможно, ваш PHP верен, и ваш клиент отправляет данные в неправильном формате. Непонятно, каков на самом деле желаемый результат.
Edit:
Поскольку кажется, что $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();
}