php - Laravel 4 - 2 个具有相同输入名称的表单

标签 php laravel laravel-4

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

虽然它们有单独的 Controller 方法。这是示例设置。

注册表单

{{ 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'
]);

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

谢谢

最佳答案

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

Named Error Bags

If you have multiple forms on a single page, you may wish to name the MessageBag of errors. This will allow you to retrieve the error messages for a specific form. Simply pass a name as the second argument to withErrors:

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

You may then access the named MessageBag instance from the $errors variable:

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

关于php - Laravel 4 - 2 个具有相同输入名称的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26540619/

相关文章:

php - 无法建立连接,因为目标机器主动拒绝 LARAVEL 4 错误

php - 尝试在 Laravel 中使用循环联合语句

Laravel 4 迁移错误 - 创建两个 auto_increment 主键字段

php - Laravel 搜索多对多关系

javascript - 如何在文本字段中循环Js函数和事件?

php - 从复选框创建数组

select - Laravel:如何更改 selectMonth 中的语言?

javascript - 从 php 获取 2 个 JSON 数组到 js

php - SQL:从数据库中选择最多一个数字(大小)

PHP:如何使用 smtp 设置发送带附件的电子邮件?