Yii2:模型值尚未保存在DB中

时间:2016-06-30 11:33:56

标签: yii2

我在yii2中遇到了这个非常奇怪的问题,

public function actionUpdate($draftId) {
    $model = $this->findModel($draftId);
    // $model->product_title = \filter_var(\trim($_POST['product_title']), \FILTER_SANITIZE_STRING,\FILTER_FLAG_NO_ENCODE_QUOTES);
    $model->product_title;
    $model->updated_at = \time();
    $model->unit_price = "6666";
    //echo $model->updated_at;
    //exit();
    if ($model->save()) {
        echo "success";
    } else {
        echo "fail";
    }
}

在我的模型中,我有这个

 class Draft extends \yii\db\ActiveRecord
    {
    public $created_at;
    public $updated_at;
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'draft';
    }

    /**
     * @inheritdoc
     */

我的模型

中没有规则集

现在,如果我尝试将此保存在数据库中,则只有$ model-> updated_at不会被保存, 我试图回应结果,我得到了预期的时间戳,但它不会保存在数据库中,我尝试检查列类型,它是在INT,所以它应该没有任何问题,但它仍然有,任何人都可以帮我这个

1 个答案:

答案 0 :(得分:0)

删除

 public $created_at;
 public $updated_at;

从模型类公共属性中,因为它们将被视为非保存属性。

然后保存模型。

如果您收到错误请发布,以便我们检查模型是否存在其他问题。

所以最终的代码是:

class Draft extends \yii\db\ActiveRecord
    {

    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'draft';
    }

    /**
     * @inheritdoc
     */

但我建议你使用 RULES 来模型过滤和验证数据