Нужна помощь в обновлении CakephpВсе - PullRequest
0 голосов
/ 08 сентября 2011

Мне нужно использовать 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 для него

1 Ответ

1 голос
/ 08 сентября 2011

Из вопроса о том, что вы пытаетесь сделать, не очень понятно, но похоже, что вы пытаетесь обновить существующую запись или, если ее еще нет, создайте ее.Вы можете использовать Model::save() для обоих.Если идентификатор модели установлен, он обновится, в противном случае будет вставлена ​​новая строка.

$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 ) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...