我有一个名为update的函数,我想根据模块id(m_id)和key(key)更新数据库中的特定记录
这是函数
public function updateRecord($module,$key,$newData){
$id = $this->module($module);
$model = new Form;
$criteria = new CDbCriteria();
$criteria->condition = "`m_id` = 1 AND `key` = 'txt'";
// $model = Yii::app()->db->createCommand("SELECT * FROM `tbl_setting` WHERE `m_id` = 1 AND `key` = 'txt'")->query();
die(var_dump($model->findAll($criteria)));
// $model = Yii::app()->db->createCommand("SELECT * FROM `tbl_setting` WHERE `m_id` = 1 AND `key` = 'txt'")->execute();
$model->m_id = $id ;
$model->attributes = $newData;
$model->save();
//die(print_r($model['m_id']));
//if(isset($_POST['save'])){
//$model['m_id'] = $id;
//}
}
每次我尝试使用这个函数时,它都会给我一个错误,即$ model不是一个对象所以它无法执行
$model->m_id = $id ;
我查看了findAll()的类型,它给出了一个数组
我签出所有find()方法,只检查提供对象的findByPk()
我想根据$条件选择,我不知道该怎么做任何帮助? :)
答案 0 :(得分:0)
findAll
将始终返回一个数组。如果有找到记录的对象,或者没有结果的空数组。 find
只返回1条记录,如果没有找到则返回NULL:
http://www.yiiframework.com/doc/api/1.1/CActiveRecord#find-detail
当您这样做时,您的代码将被保存:
if(!is_null($model)) {
$model->m_id = $id ;
$model->attributes = $newData;
$model->save();
} else {
echo 'No record found';
}