0

簡単に言えば、私はこれをやろうとしています:

$widgetsUsed->updateAll(array(
                'position'=>'- 1'
            ),
            "position > {$position} AND sidebar_id = {$sidebar_id}"
         );

これが機能するかどうか、またはこれを達成する方法について他の提案をしてくれる人はいますか?

データベースでどの値が変化しているかを正確に把握できないため、これをデバッグするのに苦労しています。だから私はここにいる誰かがこれを行う方法を直接知っていることを望んでいました.

前もって感謝します

4

1 に答える 1

1

以下のように試すことができます

Yii::app()->db->commandBuilder->createUpdateCounterCommand('{{myTable}}', array(
  'position' => 1, // -1 for decrementing
  new CDbCriteria(array(
        "condition" => "position > :pos AND sidebar_id = :id",
        "params" => array(
            "pos"=>$position, 
            "id"=>$sidebar_id
        )
    ))
));

がある場合は、 http://www.yiiframework.com/wiki/282/using-counters-with-activerecord/higher version of Yiiを使用できます。

于 2012-11-13T14:57:04.430 に答える