关于model内setter的验证 [ 新手入门 ]
初学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()里?请给个示范代码,谢谢。
共 1 条回复
spzgy
注册时间:2013-02-23
最后登录:2013-06-27
在线时长:0小时0分
最后登录:2013-06-27
在线时长:0小时0分
- 粉丝0
- 金钱35
- 威望0
- 积分35