首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >beforeSave操作未触发ajax-request

beforeSave操作未触发ajax-request
EN

Stack Overflow用户
提问于 2014-07-04 16:18:12
回答 1查看 102关注 0票数 0

我发现在Yii 1.1.14中,如果在不提交表单的情况下保存对象(实际上是ajax-request),则不会触发beforeSave操作。因此,下面的几行将引发错误,表明created_at是必需的,并且为空:

代码语言:javascript
复制
$Tour_Highlight_Model = new Tour_Highlight;
$Tour_Highlight_Model->name = $name;
$Tour_Highlight_Model->tour_id = $tour_id;
// $Tour_Highlight_Model->created_at = new CDbExpression('NOW()'); // MUST BE UNCOMMENT
$ActionResult = $Tour_Highlight_Model->save(); // BUT VALIDATION IN MODEL WORKS!

public function beforeSave() {
  if ($this->isNewRecord) {
    $this->created_at = new CDbExpression('NOW()');
  }
  return parent::beforeSave();
}

出什么事了?

EN

回答 1

Stack Overflow用户

发布于 2014-07-04 20:34:20

在引发保存事件之前会运行模型验证,因此您需要使用beforeValidate()而不是beforeSave()。

但最好将代码放入控制器中,而不是放入模型中。

代码语言:javascript
复制
if ($this->isNewRecord) {
    $this->created_at = new CDbExpression('NOW()');
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24569719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档