Abide和Laravel

时间:2014-08-08 10:39:38

标签: laravel laravel-4 zurb-foundation

我有一张表格:

{{ Form::open(array('route' => 'process', 'method'=>'POST','data-abide' => '')) }}
        <fieldset>
            <div class="name-field">
                {{ Form::label('name', 'Name') }}
                {{ Form::text('name', null, array('required' => '', 'pattern' => 'alpha')) }}
                <small class="error">A valid name is required.</small>
            </div>

            <div class="password-field">
                {{ Form::label('password', 'Password') }}
                {{ Form::password('password', null, array('id' => 'password', 'required' => '')) }}
                <small class="error">Bad password.</small>
            </div>
            <div class="password-confirm-field">
                {{ Form::label('password-confirm', 'Confirm Password') }}
                {{ Form::password('confirm-password', null, array('required' => '', 'data-equalto' => 'password')) }}
                <small class="error">The password did not match.</small>
            </div>
        </fieldset>

        {{ Form::close() }}

我的姓名字段错误有效,当输入与模式不匹配时,会出现错误。

我遇到密码字段时遇到问题:

  1. 检查确认密码字段是否与密码字段相同不起作用。这是因为它永远不会传递给页面:

    'data-equalto' => 'password'
    

    我认为这是laravel的问题,因为当我使用dev工具手动添加它时,验证工作。如何修复它以便将此参数传递给页面?

  2. 我将密码字段留空并且未显示错误,我将字段自动设置为密码意味着它必须遵守某些规则,因此应显示错误 - 为什么不显示?

1 个答案:

答案 0 :(得分:2)

您使用了错误的密码方法语法。根据{{​​3}},方法签名是:

/**
* Create a password input field.
*
* @param string $name
* @param array $options
* @return string
*/
public function password($name, $options = array())
...

它只有两个参数,但是你传递了三个,所以第三个参数被忽略了。

你应该使用

{{ Form::password('password', array('id' => 'password', 'required' => '')) }}

注意唯一的变化是第二个参数消失了。