下面是controller层的代码,用来保存表单数据:
<code>public function actionAdd(){ $categoryModel = new Category(); if(isset($_POST['Category'])){ $categoryModel->attributes = $_POST['Category']; if($categoryModel->save()){ $this->redirect(array('index')); } }</code>
我查看了CActiveRecord中的save方法是这样写的:
<code>public function save($runValidation=true,$attributes=null){ if(!$runValidation || $this->validate($attributes)) return $this->getIsNewRecord() ? $this->insert($attributes) : $this->update($attributes); else return false;}</code>
是我的理解的话应该是将$attribute传进去,但实际上并没有传进去。而且假设不传进去,也因该有:
<code>if($attributes==null){$attributes=$this->attributes;}</code>
之类的啊!怎么连这个都没有?
回复内容:
下面是controller层的代码,用来保存表单数据:
<code>public function actionAdd(){ $categoryModel = new Category(); if(isset($_POST['Category'])){ $categoryModel->attributes = $_POST['Category']; if($categoryModel->save()){ $this->redirect(array('index')); } }</code>
我查看了CActiveRecord中的save方法是这样写的:
<code>public function save($runValidation=true,$attributes=null){ if(!$runValidation || $this->validate($attributes)) return $this->getIsNewRecord() ? $this->insert($attributes) : $this->update($attributes); else return false;}</code>
是我的理解的话应该是将$attribute传进去,但实际上并没有传进去。而且假设不传进去,也因该有:
<code>if($attributes==null){$attributes=$this->attributes;}</code>
之类的啊!怎么连这个都没有?
谢邀。
题主有没有对 Category Model
使用 rule
规则,这涉及到了 Yii
中的 safe
机制,只有 Category
中的属性是 saf
本文来源gao!%daima.com搞$代*!码$网3
搞代gaodaima码e 时,才能通过 $categoryModel->attributes
接收到数据。请参考:
《Understanding “Safe” Validation Rules》
总结了一篇博文,题主可以看下: 《源码分析 Yii – save 机制》