Php 如何在Laravel中将值传递给密码字段

Php 如何在Laravel中将值传递给密码字段,php,laravel,laravel-4,blade,Php,Laravel,Laravel 4,Blade,我正在尝试获取密码字段的值,并将其以当前形式显示在其中一个更新页面中 {{ Form::label('Password')}} {{ Form::password('password',array('class' => 'form-control') }} Laravel blade的密码字段语法不允许输入参数,例如,它不允许输入文本字段 {{ Form::label('Email or Username')}} {{ Form::text('email',$useremaild

我正在尝试获取密码字段的值,并将其以当前形式显示在其中一个更新页面中

{{ Form::label('Password')}} 

{{ Form::password('password',array('class' => 'form-control') }}
Laravel blade的密码字段语法不允许输入参数,例如,它不允许输入文本字段

{{ Form::label('Email or Username')}} 

{{ Form::text('email',$useremaildata,array('class' => 'form-control')) }} 
现在我找到了一种使用占位符的解决方案,但这不是rite的方法。分享只是以防万一

{{ Form::label('Password')}} 

{{ Form::password('password',array('class' => 'form-control','placeholder' => $userpassworddata)) }}

任何帮助都会很好。

简单的答案是你不这样做。密码字段很少应该预先填充,因为这不是常见的情况,Laravel不支持它

但是,如果确实要这样做,可以使用
Form::input()


我认为这有一些有效的用例。在我的例子中,我存储的是另一个系统的密码,当用户编辑时,我想从数据库中加载先验值并填充它,这样在用户保存时它就不会被清除

这是一个自定义HTML宏,允许您在密码字段中设置默认值

start/global.php
do中:

/**
 * Custom macro for a masked password field with a default value
 */
 HTML::macro('passwordWithDefault', function($name, $defaultValue = "", $optionsArray) {    
    return Form::input('password', $name, $defaultValue, $optionsArray);
 });
然后在HTML或模板中,您可以这样使用它:

HTML::passwordWithDefault('pwdField', Input::old('pwdField', $pwd_value),['class' => 'form-control'])

你从哪里得到他们的密码?如果您正在从数据库中提取它,它将被散列…@我正在从数据库中获取它。只为用户重置那里的密码。我还没有对它进行哈希运算,但我将来会这样做。“我还没有对它进行哈希运算”-这是一种可耻的安全实践。您应该始终散列您的用户密码。没有借口。您也不应该试图显示用户密码。如果他们想更改,他们可以通过确认条目来更改,而不是显示当前条目。是的,我同意你的看法。感谢您对表单验证后刷新密码的批评,有时可以设置密码值,这样用户就不需要再次填写密码了。这是一个能够设置密码输入值的有效用例。谢谢Alex,它工作得非常好!我希望我有足够的回购协议让你放弃:)这是糟糕的安全做法。首先应该对密码进行散列,您不应该这样做。遗憾的是,如果您将
Form::model($myModel)
Form::input('password','somename',null)
一起使用,则不会预先填充此输入。它在
$myModel
中包含键的所有其他输入前加前缀,但不包含密码。Simpy在用户密码字段为空时不保存该字段,仅在其具有所有验证(非空、最小长度等)时保存密码
HTML::passwordWithDefault('pwdField', Input::old('pwdField', $pwd_value),['class' => 'form-control'])