Вставить запись после проверки формы Laravel - PullRequest
5 голосов
/ 09 июля 2019

Я пытаюсь проверить запрос Laravel 5.8. Мне удалось вернуть ошибки и отобразить их на мой взгляд. Проблема в том, что я пытаюсь не запускать никаких правил проверки, по какой-то причине я не могу вставить записи в свою таблицу.

Error

Слишком мало аргументов для работы App \ Http \ Запросы \ FieldRequest :: Осветите \ Foundation \ Провайдеры {закрытие} (), 0 пройдено и ровно 1 ожидается

Контроллер

class FormController extends Controller
{
    public function create()
    {
        return view('create');
    }

    public function store(FieldRequest $req)
    {
        $validate_data = $req->validate();

        Form::create($validate_data);

        return redirect()->back()->with('message', 'Success!');
    }
}

СформироватьЗапрос

class FieldRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'item_name' => 'bail|required|max:255',
            'sku_no' => 'required|alpha_num',
            'price' => 'required|numeric',
        ];
    }

    public function messages()
    {
        return [
            'item_name.required' => 'An Item Name is required',
            'sku_no.required' => 'An SKU NO is required',
            'price.required' => 'The price is required',
        ];
    }
}

Я ожидаю, что что-то будет вставлено в мою таблицу. Нужно ли выполнять проверку в моем контроллере или нет, чтобы добиться этого? Заранее спасибо!

1 Ответ

5 голосов
/ 09 июля 2019
    public function store(FieldRequest $req)
    {
          $data = $req->all();           

          Form::create($data);

          return redirect()->back()->with('message', 'Success!');
    }

когда вы работаете с запросом формы, вам не нужно использовать функцию validate(), потому что ваш запрос отправляется в запросе формы для проверки ваших данных, тогда он будет хранить записи

...