如果不存在数量,请尝试设置默认数量

时间:2014-08-22 10:18:42

标签: php yii

如果我的数据库中没有现有的令牌数量,我正在尝试做的是将令牌数量设置为0。然而,我下面的代码不起作用,虽然它与我用于购买和花费功能完全相同的功能完全相同。

public function actionIndex() {
    $_id = Yii::app()->user->getId();
    $model = Tokens::model()->findByAttributes(array('UserID' => $_id));
    if ($model === null)
        $defaultqty = 0;
        $model->TokenAmount = ($model->TokenAmount + $defaultqty);
        $model->save(false);
        throw new CHttpException(404, "yea it's broke, deal with it");

    $this->render('index', array(
        'model' => $model,
    ));
}

2 个答案:

答案 0 :(得分:1)

$model = Tokens::model()->findByAttributes(array('UserID' => $_id));
    if ($model === null) ...

如果$ model变量中没有模型对象。您应该在使用之前创建新模型。

$model = Tokens::model()->findByAttributes(array('UserID' => $_id));
    if ($model === null) {
        $model = new Tokens;
        ...

答案 1 :(得分:0)

我认为最好使用CActiveRecord beforeSave()方法

class Tokens extends MyActiveModel {
    private $defaultTokenAmount = 0;
    ...
    public function beforeSave() {
        if (empty($this->TokenAmount)) {
            $this->TokenAmount = $defaultTokenAmount;
        }

        return parent::beforeSave();
    }
}