yii ajaxrequest触发操作,但不保存到数据库

时间:2014-08-18 12:16:02

标签: php ajax yii

我有一个ajaxlink,用于删除(更新)项目:

<?php echo CHtml::ajaxLink('<img src="handig/ikoons/x_20x20px.png" width="20"/>',array("bedrijf/delete","id"=>$data->id),array(
    'data' => array('Verwijderen'=> ''),
    "beforeSend" => "js:function(){return confirm('Weet je zeker dat je dit item wilt verwijderen?')}",
    "type"=>"post")); ?>

此链接在我的控制器中调用此函数:

public function actionDelete($id)
    {
        echo 'hier';
        $model=$this->loadModel($id);
        if(isset($_POST['Verwijderen']))
        {
            echo '<br>in de post '.$id;
            $model->verwijderd = 1;
            $model->verwijderDatum = new CDbExpression('NOW()');

            if($model->save())
                echo '<br>opgeslagen';
        }
    }

使用echo我可以看到帖子可以传递给model-&gt; save()。只有这不会发生。这是否与模型有关,或者发生在这里?

模型规则:

public function rules()
    {
        return array(
            array ("sectorB, vProjecten, cpGebDatum, toelichting, verwijderDatum" , "safe"), 
            array('naam, adres, postcode, plaats, wijk, email, cpNaam, cpAchternaam, cpEmail, cpGebDatum, 
                rechtspositie, werkgebied, krachten, hoe'
                ,'required','message'=>'{attribute} is nog niet ingevuld!'),
            array('email, cpEmail','email'),
            array('functie, wijk, cpGeslacht, rechtsvorm, rechtspositie, verwijderd', 'numerical', 'integerOnly'=>true),
            array('naam, adres, plaats, email, website, socialMedia, cpNaam, cpAchternaam, cpEmail', 'length', 'max'=>50),
            array('afkorting, postcode', 'length', 'max'=>10),
            array('telefoon, mobiel, cpTelefoon, cpMobiel', 'length', 'max'=>25),
            array('orgDoel, orgActiviteiten, orgOnderdeel, anders', 'length', 'max'=>500),
        );
    } 

1 个答案:

答案 0 :(得分:0)

好的,这不是规则,而是我之前的保存功能来处理我的日期时间。有时我的日期时间是空的,但函数仍然必须返回true,所以我写了一个例子:

protected function beforeSave ()
    {
        if($this->cpGebDatum != ''){
            list($d, $m, $y) = explode('-', $this->cpGebDatum);
            $mk=mktime(0, 0, 0, $m, $d, $y);
            $this->cpGebDatum = date ('Y-m-d', $mk);

            return parent::beforeSave ();
        }else{
            return true;
        }
    }