Метод контроллера не вызывается с помощью настраиваемого метода запроса формы

Для проверки формы я сделал Request class через php artisan make:request UpdatePlanRequest.

Однако после использования класса UpdatePlanRequest в магазине метод больше не вызывается.

UpdatePlanRequest:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class UpdatePlanRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {   //TODO: CHECK IF THE PROTOTYPE IDS ARE OWNED BY THE USER (https://stackoverflow.com/questions/42662579/validate-an-array-of-integers/42693970)
        return [
            'start_date' => 'required|date',
            'end_date' => 'required|date|after:start_date',
            'name' => 'required|string'
        ];
    }
}

Метод контроллера:

use App\Http\Requests\UpdatePlanRequest;

public function store(UpdatePlanRequest $request)
    {
        //
        dd('hello');
    }

Если заголовок функции store(Request $request) hello отображается, в этом примере это не так.

Пользовательский класс Request необходим для вызова $request->validated(); позже для целей проверки в соответствии с docs < / а>.


person Lewis Tudor    schedule 27.08.2019    source источник
comment
Можете ли вы отредактировать свой вопрос и добавить свои маршруты, а также форму создания?   -  person zlatan    schedule 27.08.2019
comment
Покажите нам саму форму.   -  person Ruslan Skaldin    schedule 27.08.2019
comment
Это была проблема с наименованием. Я сделал рефакторинг неправильно, и для одного и того же были разные термины.   -  person Lewis Tudor    schedule 27.08.2019


Ответы (3)


Есть ли причина, по которой ваш класс Request является абстрактным? Класс по умолчанию, который создается при запуске php artisan make:request <name>, не определяет класс как абстрактный. Кажется, это работает для меня, но не при объявлении его абстрактным.

person Jam1e    schedule 27.08.2019

$request->validated(); используется для получения проверенных входных данных, поэтому, просто вызывая UpdatePlanRequest, он должен проверить запрос

person Mohammad hayajneh    schedule 27.08.2019
comment
Метод store даже не вызывается. Меня перенаправляют на страницу / create. - person Lewis Tudor; 27.08.2019
comment
@LewisTudor вы перенаправляетесь из-за проверки; это должно произойти - person Mohammad hayajneh; 27.08.2019

person    schedule
comment
Метод store даже не вызывается. Меня перенаправляют на страницу / create. - person Lewis Tudor; 27.08.2019
comment
Проверьте ошибки проверки на странице создания: laravel.com/docs/5.8 / - person Rouhollah Mazarei; 27.08.2019
comment
Спасибо! Проверка ошибок проверки заставила меня решить эту проблему. - person Lewis Tudor; 27.08.2019