У меня есть поле, установленное в соответствии с требованиями в модели, но я видел пользователей, сохраняющих его в виде пустой строки (т.е. ''
). Когда я тестировал его, я получаю сообщение «Can not be blank» должным образом, поэтому не знаю, как предотвратить это в будущем. Нужно ли указывать все сценарии в правиле (например, «вставить», «обновить»)? Кстати, я попытался обновить поле, и оно не позволяет сохранить его пустым (я даже пробую пробелы).
Это правила, применяемые к полю (модели):
public function rules()
{
return array(
array('field', 'required'),
array('field', 'length', 'max'=>4096),
array('field', 'safe', 'on'=>'search'),
);
}
Для @RiggsFolly 🙂 действие контроллера:
public function actionUpdate($id)
{
$model = Model::model()->findByPk($id);
$formData = Yii::app()->request->getPost('Model');
if ($formData)
{
$model->attributes = $formData;
$model->save();
}
$this->render('update',array(
'model'=>$model
));
}
… и вид:
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'form'
)); ?>
<?php echo $form->textArea($model,'text',array( 'rows'=>5 ')); ?>
<?php $this->endWidget(); ?>
Можете ли вы представить какой-либо сценарий, в котором это поле может сохранять пустую строку в базе данных?
Задача ещё не решена.
Других решений пока нет …