This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class HogeController extends Controller | |
{ | |
/** | |
* 単純な単一フィールド更新の例 | |
*/ | |
public function actionIsChecked($id) | |
{ | |
Hoge::model()->updateByPk($id, array('checked' => 1); | |
... | |
} | |
/** | |
* 値を比較しての単一フィールド更新の例 | |
*/ | |
public function actionChangeFlag($id) | |
{ | |
$model = Hoge::model()->findByPk($id); | |
if (!$model) { | |
throw new CHttpException(404, 'データがありません'); | |
} | |
$model->is_deleted = $model->is_deleted !== '0' ? 0 : 1; | |
$model->update(array('is_deleted')); | |
// or $model->save(false, array('is_deleted')); | |
... | |
} |
この3つはすべてバリデーションは通さず更新されます。バリデーションを通したい場合は $model->save(true, array('...')) などにすると良いと思います。
また、今回はすべてコントローラに書いていますが、基本モデルに書くほうがいいと思います。だた、サンプルの actionChangeFlag() のように、上手く書けば再利用可能なアクションになりうるものなどは、コントローラに書いたほうが良い場合もあります。
0 件のコメント:
コメントを投稿