我需要使用updateall来更新小部件的位置和列
if (!empty($column3[0])) {
$column = preg_split("/,/", $column3[0]);
$name = $column[2];
switch ($name) {
case 'My Profile':
$table = 'WidgetProfile';
break;
case 'My script':
$table = 'WidgetScript';
break;
case 'My Setting':
$table = 'WidgetSetting';
break;
case 'Upload Script':
$table = 'WidgetUpload';
break;
case 'My message':
$table = 'WidgetMessages';
break;
default :
echo "Error3 0";
}
$this->loadModel($table);
$row = $this->$table->find('count',array('conditions'=>array('user_id'=>'$id));
if($row==0){
$this->$table->set(array('column',=> 3, 'position' => 1,'user_id'=>$id));
$this->$table->save();
}else{
$this->$table->updateAll(**?????????????**);
}
如何使用updateAll
答案 0 :(得分:1)
从问题中你想要做什么并不是很清楚,但看起来你正在尝试更新现有记录,或者如果还没有记录,则创建一个记录。你可以使用Model::save()
。如果设置了模型的id,它将更新,否则它将插入一个新行。
$row = $this->$table->find(
'first',
array(
'conditions' => array( 'user_id'=> $id ),
'fields' => "$table.id",
'recursive' => -1
)
);
if( !empty( $row ) ) {
$this->$table->id = $row[ $table ][ 'id' ];
}
$this->$table->save( array('column' => 3, 'position' => 1, 'user_id'=> $id ) );