为啥 Laravel 中的验证不能正常工作?

Posted

技术标签:

【中文标题】为啥 Laravel 中的验证不能正常工作?【英文标题】:Why the validation in Laravel not working properly?为什么 Laravel 中的验证不能正常工作? 【发布时间】:2021-11-01 17:56:09 【问题描述】:

我正在使用 laravel 版本 5,并且我有一个表单可以从用户那里获取问题的标题和正文。但是当我按下提交按钮时,显示的错误消息显示“标题字段是必需的”。但实际上,我已经在字段中输入了标题。 这是控制器页面中的代码,我在其中验证猫科动物并将它们添加到我的 SQL 数据库中。

  public function store(Request $request)

  $request->validate([
    'title'=>'required|max:50',
    'field'=>'required',
    'body'=>'required|max:50'
        
  ]);
  $title=$request->title;
  $field=$request->field;
  $body=$request->body;

  $projects =new Project;
  $projects->title=$title;
  $projects->body=$body;
  $projects->file=$field;
  $projects->user_id=auth()->user_id;

  $projects->save();
  return view('/welcome')->with('success','Question Added');


我的表单代码是:

@extends('layouts.app')
@section('content')
<div class="continer-fluid">
       !! Form::open(['action'=>'App\Http\Controllers\QuestionController@store','method'=>'POST']) !!
        csrf_field()
            <div class="form-group">
                Form::label('titel','Titel')
                Form::text('titel','',['class'=>'form-control','placeholder'=>'Your Question Title'])
            </div>
            <div class="form-group">
                Form::label('field','Select your quetion filed')
                Form::select('field',['code'=>'Arduino Coding','hardware'=>'Hardwaer','IoT'=>'Internet of things']
                ,'',['class'=>'form-control','placeholder' => 'select a Field...'])
            </div>
             <div class="form-group">
                Form::label('body','Body')
                Form::textarea('body','',['name'=>'editor1','class'=>'form-control','placeholder'=>'Body text'])
            </div>
            Form::submit('Submit',['class'=>'btn btn-primary'])
        !! Form::close() !!
 </div>
 @endsection

【问题讨论】:

你的表单是什么样子的,你能把那个代码贴出来吗? 你能把你的表单代码贴出来吗!? 你的输入元素被命名为titel,而不是title @brombeer 谢谢,但是 body 字段也有同样的问题 看起来像 'name'=&gt;'editor1' 在您的 body 元素中覆盖了名称。查看源代码/检查元素以查看它具有哪个 name 属性 【参考方案1】:

您的表单代码中的一个简单错误将“title”更改为“title”

所以新的标题输入字段,

Form::text('title','',['class'=>'form-control','placeholder'=>'Your Question Title'])

【讨论】:

以上是关于为啥 Laravel 中的验证不能正常工作?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能更新 laravel 中的字段?

为啥 Laravel 会成为最成功的 PHP 框架

laravel 中的护照详细信息 api 在本地主机上可以正常工作,但不能在共享主机上运行

为啥 hash_equals 和 password_verify 不能正常工作?

为啥我的 php 中的多语言网站不能正常工作?

Laravel 最大验证无法正常工作