#php #yii
#php #yii
Вопрос:
В моем приложении модель комментариев частично отображается в представлении продукта. Все в порядке, за исключением того, что после того, как я добавил новый столбец в свою таблицу комментариев, я не могу сохранить данные в новый столбец (с именем ‘ddate’). Даже я пробовал это:
$_POST['Comment']['ddate'] = 'something';
$model2->attributes=$_POST['Comment'];
$model2->save();
но не работает!
Комментарии:
1. возможно, вы неправильно добавили этот новый атрибут в модель, просмотрите свою модель с помощью gii и проверьте различия
2. Я сделал это построчно! никакого результата!
3. пожалуйста, опубликуйте свой полный код модели
4. пользуйтесь
var_dump($model->getErrors())
, может быть, у вас есть ошибки дадаш!
Ответ №1:
$temp = $model->attributes;
$model->setFields($_POST['Comment'];);
$model->ddate = $_POST['Comment']['ddate'];
if($model->save())
{
echo "saved";
}
Ответ №2:
Вы должны установить атрибут как «безопасный» в модели, иначе значение формы не будет скопировано в модель при $model2->attributes = $_POST['Comment'];
вызове.
Пример:
public function rules() {
return array(
array('ddate', 'safe'),
);
}
Если вы всегда хотите, чтобы ddate был текущей датой / временем, возможно, было бы лучше установить его beforeSave()
вместо этого:
protected function beforeSave() {
if($this->hasAttribute('ddate') amp;amp; !isset($this->ddate))
$this->ddate = date("Y-m-d H:i:s");
Комментарии:
1. Я сделал это самым безумным образом! Я восстановил его в gii, и это сработало! но еще раз спасибо 🙂