Requests

30 Августа 2021 23:00

Requests - Слой в Laravel для валидации запросов из формы. В частности используется класс FormRequest.

Пример:

class StoreRequest extends FormRequest
{
    public function authorize(): bool
    {
        return true;
    }

    public function rules(): array
    {
        return [
            'title' => 'required|string|max:30',
            'user_id' => 'required|int'
        ];
    }
}

Работа с запросами в контроллере

Допустим у нас есть контроллер следующего вида:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class CashController extends Controller
{
  /**
   * Показать информацию в зависимости от данных из формы
   *
   * @param  Request  $request
   * @return Response
   */
  public function show(Request $request)
  {
    $year= $request->input('year');
    if(!empty($year)) {
      //
    }
  }
}

Для работы с запросами в нём нужно:

  1. Подключить соответствующий класс Request, в зависимости от того с чем работаем, с помощью конструкции use;
  2. Передаем параметр $request в метод, который будет работать с запросом, указав при этом, тип класса Request. Экземпляр класса автоматически будет создан сервис-контейнером.

Если в маршруте задана передача параметров в контроллер, например так: Route::get('cash/{year}', 'CashController@show');.  То необходимые параметры передаются, следом за $request:

public function show(Request $request, $year)
{
  if(!empty($year)) {
    //
  }
}