Laravel 5.2 验证错误未出现在刀片中 [英] Laravel 5.2 Validation Error not appearing in blade

查看:28
本文介绍了Laravel 5.2 验证错误未出现在刀片中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当用户输入错误时,我想在查看页面中显示验证错误.当用户输入错误时,它不会在数据库中保存任何内容,这没关系.但是在用户视图页面中没有错误消息.如果有人发现错误,请帮助我.

这是控制器:

public function saveUser(Request $request){$this->validate($request,['名称' =>'需要|最大:120','电子邮件' =>'required|email|unique:users','电话' =>'需要|分钟:11|数字','course_id'='必填']);$user = 新用户();$user->name= $request->Input(['name']);$user->email= $request->Input(['email']);$user->phone= $request->Input(['phone']);$user->date = date('Y-m-d');$user->completed_status = '0';$user->course_id=$request->Input(['course_id']);$user->save();返回重定向('成功');}

路线如下:

Route::group(['middleware' => 'web'], function () {路由::get('/', function () {返回视图('索引');})->name('main');路线::post('/saveUser',['使用' =>'AppController@saveUser','as'=>'saveUser',]);});

这是刀片视图页面:

@extends('layouts.master')@section('标题')创建用户@endsection@section('内容')@include('partials.message-block')<div class="container" ><h3>学生注册</h3>{!!Form::open(array('route' => 'saveUser','class'=>'form-horizo​​ntal','method'=>'POST')) !!}{!!形式::令牌();!!}{!!csrf_field() ;!!}<div class="form-group"><label>名称</label><input type="text" name="name" class="form-control" required placeholder="Name">

<div class="form-group"><label>电子邮件</label><input type="email" name="email" class="form-control" required placeholder="email">

<div class="form-group"><label>电话号码</label><input type="text" name="phone" class="form-control" required placeholder="phone">

<div class="form-group"><label for="">Class</label><select class="form-control input-sm" name="course_id" >@foreach($input 作为 $row)<option value="{{$row->id}}">{{$row->name}}</option>@endforeach</选择>

<button type="submit" class="btn btn-default">提交</button>{!!表单::关闭() !!}

@endsection

这是错误消息块:

@if(count($errors) > 0)<div class="row"><div class="col-md-4 col-md-offset-4 错误"><ul>@foreach($errors->all() as $error)<li>{{$error}}</li>@endforeach

@万一@if(Session::has('message'))<div class="row"><div class="col-md-4 col-md--offset-4 成功">{{Session::get('message')}}

@万一

解决方案

如果您使用的是 5.2.27 或更高版本,请尝试删除 web 中间件.现在的事情是 Laravel 自动将 web 中间件应用于 routes.php 中的所有路由,如果你尝试手动添加它,你可能会得到错误.

5.2.27 版本的

app/Providers/RouteServiceProvider.php 现在为 routes.php 中的所有路由添加了 web 中间件:

protected function mapWebRoutes(Router $router){$router->group(['命名空间' =>$this-> 命名空间,'中间件' =>'网络',], 函数 ($router) {require app_path('Http/routes.php');});}

I want to show validation Error in View page while user giving wrong input. It's Ok that it's not saving anything in database while a user giving wrong input. But there is no error message in user view page. If anyone find the error, please help me out.

Here is the controller:

public function saveUser(Request $request){
        $this->validate($request,[
            'name' => 'required|max:120',
            'email' => 'required|email|unique:users',
            'phone' => 'required|min:11|numeric',
            'course_id'=>'required'
            ]);

        $user = new User();
        $user->name=  $request->Input(['name']);
        $user->email=  $request->Input(['email']);
        $user->phone=  $request->Input(['phone']);
        $user->date = date('Y-m-d');
        $user->completed_status = '0';
        $user->course_id=$request->Input(['course_id']);
        $user->save();
       return redirect('success');         
    }

Here is the route:

Route::group(['middleware' => 'web'], function () {

    Route::get('/', function () {
        return view('index');
    })->name('main');

      Route::post('/saveUser',[
        'uses' => 'AppController@saveUser',
        'as'=>'saveUser',
        ]);
    });

Here is the blade view page:

@extends('layouts.master')
@section('title')
Create User
@endsection
@section('content')
@include('partials.message-block')
        <div class="container" >

            <h3> Student Register </h3>

        {!! Form::open(array('route' => 'saveUser','class'=>'form-horizontal','method'=>'POST'))  !!}
      {!! Form::token(); !!}
      {!!   csrf_field() ; !!} 

        <div class="form-group">
          <label>Name</label>
          <input type="text" name="name" class="form-control" required placeholder="Name">
        </div>

        <div class="form-group">
          <label>Email</label>
          <input type="email" name="email" class="form-control" required placeholder="email">
        </div>

        <div class="form-group">
          <label>Phone Number</label>          
          <input type="text" name="phone" class="form-control" required placeholder="phone">
        </div>

        <div class="form-group">
            <label for="">Class</label>
            <select class="form-control input-sm" name="course_id" >
            @foreach($input as $row)
            <option value="{{$row->id}}">{{$row->name}}</option>
            @endforeach
            </select>
        </div>  

        <button type="submit" class="btn btn-default">Submit</button>
    {!! Form::close() !!}
        </div>

@endsection

And here is the error-message block:

@if(count($errors) > 0)
    <div class="row">
        <div class="col-md-4 col-md-offset-4 error">
            <ul>
                @foreach($errors->all() as $error)
                    <li>{{$error}}</li>
                @endforeach
            </ul>
        </div>
    </div>
@endif
@if(Session::has('message'))
<div class="row">
    <div class="col-md-4 col-md--offset-4 success">
        {{Session::get('message')}}
    </div>
</div>

@endif

解决方案

Try to remove web middleware if you're using 5.2.27 or higher. The thing is now Laravel automatically applies web middleware to all routes inside routes.php and if you're trying to add it manually you can get errors.

app/Providers/RouteServiceProvider.php of the 5.2.27 version now adds web middleware to all routes inside routes.php:

protected function mapWebRoutes(Router $router)
{
    $router->group([
        'namespace' => $this->namespace, 'middleware' => 'web',
    ], function ($router) {
        require app_path('Http/routes.php');
    });
}

这篇关于Laravel 5.2 验证错误未出现在刀片中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
PHP最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆