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

hoo*_*gan 4 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() }}
Run Code Online (Sandbox Code Playgroud)

登录表格

{{ 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() }}
Run Code Online (Sandbox Code Playgroud)

routes.php文件

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

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

谢谢

cee*_*yoz 5

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

命名错误包

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

return Redirect::to('register')->withErrors($validator, 'login');
Run Code Online (Sandbox Code Playgroud)

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

<?php echo $errors->login->first('email'); ?>
Run Code Online (Sandbox Code Playgroud)