【问题标题】:**Laravel** form request validation not return errors**Laravel** 表单请求验证不返回错误
【发布时间】:2025-12-24 07:25:11
【问题描述】:

我用自定义消息设置 laravel 5.8 表单请求,它的验证很好,并在输入无效时重定向回表单 dost 错误返回或我不看哪里有错误

这是我的课

public function create(createUser $request){
    //on invalid input not enter in this class
        //validation
    //dd($request->all('name'));


        $validator = $request->validated();
            if ($validator->fails()) {
                 Session::flash('error', $validator->messages()->first());
                return redirect()->back()->withInput();
            }

请求类

public function rules()
    {

        return [
            'name'      => 'required|max:255'
            ,'email'    => 'string|required|E-mail|unique:users,email'
            ,'birthY'   => 'required|min:4'
            ,'birthM'   => 'required'
            ,'birthD'   => 'required'
            ,'gender'   => 'required'
            ,'Phone'    => 'required|min:11|max:11'
            ,'password' => 'required|min:8'
        ];

    }

    public function messages(){

        return [
            'name.required' => "اسمت چیه ؟!!",
            'email.required' => 'ایمیلت چیه?',
            'gender.required' => 'سرکار خانم یا جناب آقای ؟',
            'Phone.required'    =>'شماره ما توی درباره ما هست  شما بدین شاید باهتون کار داشتیم',
            'birthY.required'  => 'تولدت کیه ؟',
            'birthY.min'  => 'سال ها چهار رقمیه گلم',
            'password.required' =>'رمز بزار تا امن باشی ' ,
            'password.min' =>'حداقل هشتا بزن که کسی شک نکنه ',
            'password.confirmed' =>'هنوز هیچی نشده یادت رفت پسوردت رو  تایید کن تا بفهمم یاد داری',
            'Phone.min' =>  'شمارتو با صفر بزن لطفا'         
        ];
    }

这是我的刀片,我尝试显示错误 工作!!!!


                @if ($errors->any())
                        <div class="alert alert-danger">
                            <ul>
                            @foreach ($errors->all() as $error)
                                    <li>{{ $error }} </li>
                            @endforeach
                            </ul>
                        </div>
                @endif


            @isset($messages)
            <?php dd($messages) ?>

            @endisset



        @if (count($errors) > 0)
      <div class="alert alert-danger">
        <?php dd($error) ?>

          <ul>
              @foreach ($errors->all() as $error)

              <li>{{ $error }}</li>

              @endforeach



如果您需要其他 代码,请告诉我 tnx 很多 :)

【问题讨论】:

  • 当您使用 Laravel 表单请求验证 (laravel.com/docs/master/validation#form-request-validation) 时,Laravel 将为您处理一切。您不必手动检查验证并手动重定向到上一页。再次阅读文档。此外,使用 Laravel Telescope 进行更好的调试,以确保您到达正确的终点。
  • 我知道,但我需要知道如何显示我的错误消息,这是我的主要问题
  • 您说验证不会触发。安装 Laravel Telescope 进行调试。使用 Laravel 表单请求验证文档从头开始。当您让 dd() 验证消息正常工作时,然后继续下一步以将它们显示在您的表单上。
  • dd( $validator)的结果是什么
  • 它没有得到结果

标签: php laravel laravel-blade laravel-5.8


【解决方案1】:

如果邮递员遇到这种情况,请记住检查标头是否接受 json。

接受:应用程序/json 内容类型:application/json

【讨论】:

  • 太棒了,你拯救了我的一天!
  • 不错,没问题的家伙!
  • 我实际上是新建了另一个项目并粘贴了我所有的课程和迁移以及它的工作,但它听起来像是上面那个家伙的工作,所以谢谢你的合作