Я довольно новичок в PHP
и Laravel
, и у меня есть следующие сомнения относительно {{csrf_field()}}
обозначение вставлено в <form>
.Почему, если я не помещаю {{csrf_field()}} в конце формы (в представлении Laravel 5), я получаю исключение TokenMismatchException?
В целях у меня есть следующий вид:
<form method="post" action="/registration">
<div class="form-group">
<label>Nome</label>
<div class="input-group">
<div class="input-group-addon"><i class="fa fa-user"></i></div>
<input type="text" name="name" class="form-control" placeholder="Inserisci il tuo nome">
</div>
</div>
<div class="form-group">
<label>Cognome</label>
<div class="input-group">
<div class="input-group-addon"><i class="fa fa-user"></i></div>
<input type="text" name="surname" class="form-control" placeholder="Inserisci il tuo cognome">
</div>
</div>
<!-- Some other fields -->
{{csrf_field()}}
<button type="submit" class="btn btn-default">Submit</button>
</form>
Это обрабатывается этим minimialistic метод контроллера:
public function store(Request $request)
{
return $request->all();
}
Так что, если я поставил {{csrf_field()}}
«statment» перед кнопкой «Отправить» работает отлично и t он правильно обрабатывается методом контроллера, но если я удалю эту строку, он не сможет работать, и я получаю TokenMismatchException
.
Почему это так и что именно представляет это {{csrf_field()}}
и почему я должен использовать его в форме?
Для метода запроса он ищет токен csrf –