Laravel验证错误

时间:2014-05-07 06:22:25

标签: php validation laravel-4 blade

我正在尝试在index.blade.php上获取验证错误:

  1. 当我填写两个字段时,如果我只是在getLogin控制器中放置一个Echo或Return,那就顺利了。
  2. 当我只填充一个字段时,如果我只是放入并回显或返回但没有给出验证错误,它的效果很好,验证错误只会显示,"有些事情发生了错误"
  3. index.blade.php的代码

    <section class="mainWrap">
        <div class="headingfirst"><img src="{{ URL::asset('css/des.png') }}" width="78"></div>
        <div class="sedhead">Hey User!!!! Try to Login</div>
        <div class="againtext">Sign In To Your Account</div>
        <article class="FormContainer">
                @foreach($errors as $error)
                <div class="errors">{{ $error }} </div>
                @endforeach
    
            <img class="profile-img" src="{{ URL::asset('css/avatar_2x.png')}}">
            {{ Form::open(array('class'=> 'SetMe')) }}
    
                {{ Form::text('email',null, array('placeholder'=>'Email','class'=>'insi')) }}
                {{ Form::password('password',array('placeholder'=>'Password','class'=>'dnsi')) }}
                {{ Form::submit('Sign In', array('class'=>'SignIn')) }}
    
            {{ Form::close() }}
        </article>
    
    </section>
    

    AuthController.php的代码

    <?php
    
    class AuthController extends Controller{
    
        public function GetLogin() {
    
    
            return View::make('layouts.index');
    
        }
    
        public function LogInfo() {
    
            $rules = array('email' => 'required','password' =>'required');
    
            $validator = Validator::make(Input::all(),$rules);
    
            if($validator->fails()){
    
    
                    return Redirect::route('login')
                        ->withErrors($validator);
            }
            else{
    
            }
    
        }
    
    }
    

    Routes.php的代码

    Route::get('login', array('uses'=>'AuthController@GetLogin' ));
    
    Route::post('login', array('uses'=>'AuthController@LogInfo'));
    
    即使我放了Auth Code,它也不会显示任何东西,除了&#34;出现问题&#34;。但是在使用Echos时它可以正常工作

1 个答案:

答案 0 :(得分:0)

在验证失败的声明中,

您需要使用return Redirect::to('login')代替return Redirect::route('login')

index.blade.php中,它应该像 -

@foreach($errors->all() as $error)
    <div class="errors">{{ $error }} </div>
@endforeach

而不是

@foreach($errors as $error)
    <div class="errors">{{ $error }} </div>
@endforeach

这也是我的建议。如果您当前正在使用laravel开发应用程序,则最好启用调试。打开laravel/app/config/app.php并确保'debug' => 'true'。它将帮助您查看堆栈跟踪的详细错误消息。