madmis
(Kafu82)
February 23, 2012, 12:45pm
1
Есть форма добавления/редактирования пользователя.
<?php /** @var BootActiveForm $form */
$form = $this->beginWidget('bootstrap.widgets.BootActiveForm', array(
'id'=>'verticalForm',
'htmlOptions'=>array('class'=>'well'),
)); ?>
<!-- <p class="note"><?php echo Yii::t('app', 'Поля, отмеченные <span class="required">*</span> обязательны для заполнения.'); ?></p>-->
<?php echo $form->errorSummary($model); ?>
<?php echo $form->textFieldRow($model, 'username', array('class'=>'span3','maxlength'=>128)); ?>
<?php echo $form->passwordFieldRow($model, 'password', array('class'=>'span3','maxlength'=>128)); ?>
<?php echo $form->textFieldRow($model, 'email', array('class'=>'span3','maxlength'=>128)); ?>
<div class="form-actions">
<?php echo CHtml::htmlButton('<i class="icon-ok icon-white"></i> ' . Yii::t('app', 'Сохранить'),
array('class'=>'btn btn-primary', 'type'=>'submit')); ?>
<?php echo CHtml::htmlButton('<i class="icon-ban-circle"></i> ' . Yii::t('app', 'Очистить'),
array('class'=>'btn', 'type'=>'reset')); ?>
</div>
<?php $this->endWidget(); ?>
Когда форма для редактирования, поле пароль заполянется md5 паролем. Как сделать value у этого поля пустым?
Jampire
(Jampire Blr)
February 23, 2012, 2:00pm
2
<?php echo $form->passwordFieldRow($model, 'password', array('class'=>'span3','maxlength'=>128, 'value' => '')); ?>
Нужно еще проработать стратегию не хеширования хеша. На форуме русскоязычного сообщества много раз обсуждалась эта тема http://yiiframework.ru/forum/ .
madmis
(Kafu82)
February 23, 2012, 4:44pm
3
Jampire:
<?php echo $form->passwordFieldRow($model, 'password', array('class'=>'span3','maxlength'=>128, 'value' => '')); ?>
Нужно еще проработать стратегию не хеширования хеша. На форуме русскоязычного сообщества много раз обсуждалась эта тема http://yiiframework.ru/forum/ .
Я поставил +. Спасибо большое за помощь.
madmis
(Kafu82)
February 24, 2012, 8:54am
4
Сделал так.
В форме:
<?php if ($model->isNewRecord): ?>
<?php echo $form->passwordFieldRow($model, 'password', array('class'=>'span3','maxlength'=>128)); ?>
<?php else: ?>
<?php echo $form->passwordFieldRow($model, 'npassword', array('class'=>'span3','maxlength'=>128)); ?>
<?php endif; ?>
в модели
...
public function rules() {
return array(
...
array('npassword', 'safe', 'on'=>'update')
);
}
...
public function getNpassword() {
return '';
}
public function setNpassword($password) {
$password = trim($password);
if (!empty($password)) {
$this->password = $password;
}
}
не знаю на сколько правильно такое решение идеологически, но мне оно помогло.