Laravel错误没有出现

时间:2014-01-30 23:40:28

标签: php laravel laravel-4

我正在尝试将新匹配添加到数据库中,但如果我故意不在表单中输入任何内容,则不会显示任何错误。我的注册表格基于此完美。如果我正确填写表单,所有数据都会正确进入数据库。

MatchController.php

public function postCreate()
{

    $validator = Validator::make(Input::all(), Match::$rules);

    if ($validator->passes()) 
    {

        $datetime = Input::get('year')."-".Input::get('month')."-".Input::get('day')." ".Input::get('time').":00";

        $match = new Match;
        $match->type = Input::get('match_type');
        $match->associate = Input::get('associate');
        $match->date = $datetime;
        $match->location = Input::get('location');
        $match->save();

        $matchp1 = new Matchplayer;
        $matchp1->user_id = Input::get('id');
        $matchp1->match_id = $match->id;
        $matchp1->team = 1;
        $matchp1->save();

        $matchp2 = new Matchplayer;
        $matchp2->user_id = Input::get('opponent');
        $matchp2->match_id = $match->id;
        $matchp2->team = 2;
        $matchp2->save();

        return Redirect::to('members/matches/create')->with('message', 'Match created!');

    }else{
        return Redirect::to('members/matches/create')->withErrors($validator)->withInput();
    }
}

匹配模型(Match.php)

    class Match extends Eloquent{

        protected $table = 'matches';

        public static $rules = array(
            'match_type'=>'required',
            'associate'=>'alpha|min:2'
            'location'=>'required|alpha|min:2',
            'team_mate2'=>'required_if:match_type,doubles',
            'opponent2'=>'required_with:team_mate2'
        );

    }

匹配创建视图(matchCreate.php)

<div class="row clearfix">
        <!-- Error Message Box -->
            @if(Session::has('message'))
            <div class="col-md-8 col-md-offset-2">
                <div class="alert alert-info">{{ Session::get('message') }}</div>
            </div>
            @endif
        <div class="col-md-9">
            <!-- Top Menu BEGIN -->
            <ul class="nav nav-pills nav-justified">
                <li>{{ HTML::link('members/logout', 'Profiles') }}</li>
                <li>{{ HTML::link('members/logout', 'Leagues') }}</li>
                <li class="active">{{ HTML::link('members/logout', 'Add Match') }}</li>
                <li>{{ HTML::link('members/logout', 'Results &amp; Fixtures') }}</li>
                <li>{{ HTML::link('members/logout', 'Matchboard') }}</li>
            </ul>
            <!-- Top Menu END -->
            <div class="page-header">
                <h3>Create a Match</h3>
            </div>
            <div class="col-sm-6">
                {{ Form::open(array('url'=>'members/matches/create', 'action' => 'post', 'class'=>'form-horizontal')) }}
                {{ form::hidden('id', Auth::user()->id) }}
                <div class="form-group">
                    <label class="col-sm-5 control-label col-sm-pad">Match Type</label>
                    <div class="col-sm-7 col-sm-pad">
                        {{ $errors->first('match_type', '<span class="help-block">:message</span>') }}
                        {{ Form::select('match_type', array('singles' => 'Singles', 'doubles' => 'Doubles'), 'singles', array('id' => 'match_type', 'class' => 'form-control input')) }}
                    </div>
                </div>
                <div class="form-group">
                    <label for="gender" class="col-sm-5 control-label col-sm-pad">League Associate</label>
                    <div class="col-sm-7 col-sm-pad">
                        {{ $errors->first('associate', '<span class="help-block">:message</span>') }}
                        {{ Form::text('associate', Input::old('associate'), array('class' => 'form-control input')) }}
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-5 control-label col-sm-pad">Team Mate #1<br><small></small></label>
                    <div class="col-sm-7 col-sm-pad">
                        <p class="form-control-static">{{ Auth::user()->first_name." ".Auth::user()->last_name }}</p>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-5 control-label col-sm-pad">Opponent #1</label>
                    <div class="col-sm-7 col-sm-pad">
                        {{ $errors->first('opponent', '<span class="help-block">:message</span>') }}
                        {{ Form::select('opponent', $users, 'key', array('class' => 'form-control input')) }}
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-5 control-label col-sm-pad">Team Mate #2<br><small>(Doubles Only)</small></label>
                    <div class="col-sm-7 col-sm-pad">
                        {{ $errors->first('team_mate2', '<span class="help-block">:message</span>') }}
                        {{ Form::select('team_mate2', $users, 'key', array('class' => 'form-control input')); }}
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-5 control-label col-sm-pad">Opponent #2<br><small>(Doubles Only)</small></label>
                    <div class="col-sm-7 col-sm-pad">
                        {{ $errors->first('opponent2', '<span class="help-block">:message</span>') }}
                        {{ Form::select('opponent2', $users, 'key', array('class' => 'form-control input')) }}
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-5 control-label col-sm-pad">Date</label>
                        {{ $errors->first('day', '<span class="help-block">:message</span>') }}
                        <div class="col-lg-2 col-sm-pad">
                            {{ Form::selectRange('day', 1, 31, 'a', array('class' => 'form-control input input-sm dob-form-control')) }}
                        </div>
                        <div class="col-lg-2 col-sm-pad">
                            {{ Form::selectRange('month', 1, 12, 'a', array('class' => 'form-control input input-sm dob-form-control')) }}
                        </div>
                        <div class="col-lg-3 col-sm-pad">
                            {{ Form::selectRange('year', 2014, 2015, 'a', array('class' => 'form-control input-sm input dob-form-control')) }}
                        </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-5 control-label col-sm-pad">Time</label>
                    <div class="col-lg-3 col-sm-pad">
                        {{ $errors->first('time', '<span class="help-block">:message</span>') }}
                        {{ Form::select('time', $times, 'key', array('class' => 'form-control input input-sm dob-form-control')) }}
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-5 control-label col-sm-pad">Location</label>
                    <div class="col-sm-7 col-sm-pad">
                        {{ Form::text('location', Input::old('location'), array('class' => 'form-control input')) }}
                    </div>
                </div>
                {{ Form::submit('Create', array('class'=>'btn btn-success btn-block')) }}
                {{ Form::token() . Form::close() }}
            </div>
            <div class="col-sm-6">
            </div>
        </div>
        @include('includes.sidemenu')
    </div>

routes.php文件

Route::post('members/matches/create', 'MatchController@postCreate');

1 个答案:

答案 0 :(得分:2)

您正在错误地创建Validator对象。 make()方法有四个参数:

/**
 * Create a new Validator instance.
 *
 * @param  array  $data
 * @param  array  $rules
 * @param  array  $messages
 * @return \Illuminate\Validation\Validator
 */
public function make(array $data, array $rules, array $messages = array(), array $customAttributes = array()) { ... }

您将每个验证规则作为单独的数组传递,而不是作为一个数组一起传递。随后,您也没有传递任何输入数据,因此它没有要验证的实际数据。