Quantcast
Channel: Yii Framework Forum
Viewing all articles
Browse latest Browse all 18717

关于Model内Setter的验证

$
0
0
初学yii,遇到个一个问题。
我的数据库表里有一个字段repayment_date,是时间戳。
我想通过页面中的RepaymentDateText传递过来的值:2013-04-27,来设定repayment_date。

getter部分已经OK,可以正常获得
        public function getRepaymentDateText()
        {
                if (empty($this->repayment_date)) {
                        return null;
                } else {
                        return date('Y-m-d',$this->repayment_date);
                }
        }


setter部分我是这样写的
        public function setRepaymentDateText($value)
        {
                if(empty($value) || !$value) return false;
                $this->repayment_date = strtotime($value.' 00:00:00');
        }


gii默认在Controller中用$model->attributes=$_POST['***'],这样自动过滤了POST过来的RepaymentDateText的值

        public function actionUpdate($id)
        {
                $model=$this->loadModel($id);

                // Uncomment the following line if AJAX validation is needed
                // $this->performAjaxValidation($model);

                if(isset($_POST['Blacklist']))
                {
                        $model->attributes=$_POST['Blacklist'];
                        if($model->save())
                                $this->redirect(array('view','id'=>$model->id));
                }

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


我在model的beforeSave里用,如下代码可以激活setRepaymentDateText,但是这样写不是很合适。
$model->RepaymentDateText = $_POST['Blacklist']['RepaymentDateText'];


第一个问题:请问如何该如何处理才比较好?
第二个问题:$_POST['Blacklist']['RepaymentDateText']这个值应该如何验证才更加复合yii的规范?写在rules()里?请给个示范代码,谢谢。

Viewing all articles
Browse latest Browse all 18717

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>