Laravel 4 - 2具有相同的输入名称

时间:2014-10-24 02:34:52

标签: php laravel laravel-4

我创建了2个单独的表单。一个用于登录,一个用于注册。它们在单独的页面上工作正常,但如果它们在同一页面上,则会打印彼此的错误消息。我猜它是因为它们都包含相同的输入名称。

他们有单独的控制器方法。以下是示例设置。

注册表单

{{ Form::open(['route' => 'signup']) }}

<div class="form-group">
    {{ Form::label('email', 'Email') }}
    {{ Form::text('email', null, ['class' => 'form-control']) }}
    {{ $errors->first('email', '<p class="error">:message</p>')}}
</div>

<div class="form-group">
    {{ Form::label('password','Paswword') }}
    {{ Form::password('password', ['class' => 'form-control']) }}
    <p class="help-block">Password needs to be between 6 - 8 characters</p>
    {{ $errors->first('password', '<p class="error">:message</p>')}}
</div>
<div class="form-group">

    {{ Form::submit('Sign up', ['class' => 'btn btn-primary']) }}

</div>
{{ Form::close() }}

登录表单

{{ Form::open(['route' => 'login']) }}

<div class="form-group">
    {{ Form::label('email', 'Email') }}
    {{ Form::text('email', null, ['class' => 'form-control']) }}
    {{ $errors->first('email', '<p class="error">:message</p>')}}
</div>

<div class="form-group">
    {{ Form::label('password','Paswword') }}
    {{ Form::password('password', ['class' => 'form-control']) }}
    {{ $errors->first('password', '<p class="error">:message</p>')}}
</div>

<div class="form-group">

    {{ Form::submit('Login', ['class' => 'btn btn-primary']) }}

</div>

{{ Form::close() }}

routes.php文件

Route::get('/signup', [
    'as' => 'signup',
    'uses' => 'UsersController@getSignup'
]);
Route::post('/signup', [
    'as' => 'signup',
    'uses' => 'UsersController@postSignup'
]);

只是想知道是否有其他人遇到过这个问题以及如何解决它。

由于

1 个答案:

答案 0 :(得分:5)

http://laravel.com/docs/4.2/validation#error-messages-and-views

  

命名错误包

     

如果您在一个页面上有多个表单,您可能希望将MessageBag命名为错误。这将允许您检索特定表单的错误消息。只需将名称作为第二个参数传递给withErrors:

return Redirect::to('register')->withErrors($validator, 'login');
     

然后,您可以从$ errors变量访问命名的MessageBag实例:

<?php echo $errors->login->first('email'); ?>