初学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,但是这样写不是很合适。
$this->RepaymentDateText = $_POST['Blacklist']['RepaymentDateText'];
第一个问题:请问如何该如何处理才比较好?
第二个问题:$_POST[‘Blacklist’][‘RepaymentDateText’]这个值应该如何验证才更加复合yii的规范?写在rules()里?请给个示范代码,谢谢。