@Xveeder

Что не так с валидацией Laravel?

Есть контроллер:

<?php

namespace App\Http\Controllers\CAuth;

use  App\Http\Classes\UserRegister;
use Illuminate\Http\Request;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;

class CustomAuthController {
    public function validate (Request $request) {
        $rules = [
            'username' => 'required|string|max:255',
            'email' => 'required|string|email|max:255',
            'password' => 'required|string|min:6',
            'invite' => 'required|integer|min:6',
        ];
            
       $this->validate($request, $rules);       
     
    }
}


Данные передаются из формы через POST-запрос, в роутах также прописан POST-запрос. Но после отработки этого контроллера браузер вылетает:

5acdcdea8bedc775786117.png
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Arik
Это на продакшн? логи молчат? если дев то включайте показ ошибок.
так может что угодно быть, какие middleware не пропускают.. навскидку может в csrf полях?
Ответ написан
@Kostik_1993
Web Developer
А чего ты ждал когда называл метод validate?
Обрати внимание, у тебя метод контроллера называется также как метод валидации в контроллере, который ты кстати вдобавок ко всему вызываешь из своего метода
Замени
public function validate
на другое название, должно быть либо store либо update
Ах да, и еще ты не наследуешь свой контроллер от базового, в этом тоже беда
Ответ написан
@iljaGolubev
Должно быть
class CustomAuthController {
    public function validate (Request $request) {
        $rules = [
            'username' => 'required|string|max:255',
            'email' => 'required|string|email|max:255',
            'password' => 'required|string|min:6',
            'invite' => 'required|integer|min:6',
        ];

       // Внимание
       $request->validate($rules);            
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы