Как сделать post запрос в Laravel?

169
13 января 2019, 20:50

У меня сложилась такая ситуация у меня есть форма в которой нужно получить id, а потом с этой id сделать запрос в БД.

Вот html код:

<form action="/product/get" method="post">
  <div style="margin-top: 15%;" class="input-group mb-3">
  <div class="input-group-prepend col-xs-12">
    <span style="color: white;" class="input-group-text bg-dark" id="basic-addon1">Введите Id: </span>
  </div>
  <input type="text" name="name" class="form-control"  aria-describedby="basic-addon1">
  </div>
  <input type="submit" class="btn btn-success container" value="Получить товар" >
  </form>

а это controller

public function postId(Request $request){
  $id = $request->input('name');
  $product = Product::where('id', $id)->get();
  return view('showProduct', ['product' => $product]);
}

а это путь:

Route::post('/product/get','ProductController@postId' );

Когда нажимаю на кнопку, выводится ошибка 419 (Sorry, your session has expired. )

Answer 1

Эта проблема исходит из проверки токена CSRF, которая терпит неудачу. Таким образом, либо вы не публикуете его, либо публикуете неверный.

Вы можете опубликовать токен CSRF в своей форме, вызвав:

<form action="/product/get" method="post">
    {{ csrf_field() }}
    ...
</form>

или

<form action="/product/get" method="post">
   @csrf
   ...
</form>

или

<form action="/product/get" method="post">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
Answer 2

Можешь в посредник добавить строчку

<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
 * The URIs that should be excluded from CSRF verification.
 *
 * @var array
 */
protected $except = [
    '/product/get',
];
}

Но это просто отключить проверку от CSRF на этом маршруте и ошибки не будет. Сам задал по этому поводу вопрос.

READ ALSO
$_POST - пустой массив, $_GET - работает нормально

$_POST - пустой массив, $_GET - работает нормально

При помощи приложения Postman проверяю следующий код:

147
opencv 2.3.1 подключение

opencv 2.3.1 подключение

Возник вопрос как подключить opencv в проекте, не меняя настроек среды, те

168
Перебор слов в текстовом файле

Перебор слов в текстовом файле

Задача вот какова: вытащить из текстового файла три значения с каждой строки: товар, магазина и ценуЯ создал динамический массив структур...

178
Странные границы матрицы в c++

Странные границы матрицы в c++

Вот есть функция:

171