TL; DR
Это потому, что переменные obj
являются массивом, а не объектом. Решение вашей проблемы:
return $request->obj['id'];
Дополнительные пояснения
При вызове свойства на экземпляре Request
Laravel, который не существует, вызывается магический метод с именем __get()
. Этот метод проверяет, существует ли свойство, которое вы только что вызвали, в теле запроса. Если это так, он вернет это значение. При отправке объектов или массива в ваше приложение Laravel, Запрос (или, точнее, PHP) получает эти значения в виде массива. Вот почему вам нужно обращаться к переменной id через массив, а не через объект.
Кстати, если идентификатор не был отправлен в переменной obj
в теле запроса, код завершится ошибкой, потому что его для ключа не существует. Возможно, вы захотите проверить данные тела запроса. Подробнее читайте в документах Laravel .