Отправка формы и установка типа контента для application / json в Laravel - PullRequest
0 голосов
/ 17 октября 2018

У меня есть следующая форма:

<form action="/create" method="post" enctype="application/json">
 <input name="some_input" value="true"> 
 <input name="user.name" value="John">
 <input name="user.email" value="john@abc.com">
 <button>Save</button>
</form>

Когда я пытаюсь получить доступ к входным значениям через запрос, я не могу получить доступ к значениям, используя синтаксис точки, как описано в документации, например:

request()->input('some_input') //true
request()->input('user.*') //null
request()->input('user.name') //null

Я подозреваю, что я не устанавливаю тип контента на application/json, но я пытаюсь найти информацию о том, как сделать это правильно в этом случае.

СпасибоВам за помощь!

1 Ответ

0 голосов
/ 17 октября 2018

Его поведение PHP для преобразования . в _, если существует в запросе post / get

Примечание:

Точки и пробелы в именах переменных преобразуются в подчеркивания.Например, <input name="a.b" /> становится $_REQUEST["a_b"].

Получить более подробную информацию в PHP Doc

В шаблоне

 <input name="user.email" value="john@abc.com">

В контроллере

 request()->input('user_name') // Will give you john@abc.com

Чтобы использовать его как массив, используйте как

<input name="user[name]" value="John">
<input name="user[email]" value="john@abc.com">

Теперь вы можете использовать . в контроллере

request()->input('user.name') // will give John
request()->input('user.email') // will give john@abc.com
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...