0

Yii モデルに問題があります。2 つの datetime 列を持つ MySQL テーブルを作成します。

そして、gii でモデルを作成します。問題は、モデルからデータを取得すると、日時フィールドが空になることです。

<?php

/**
 * This is the model class for table "Template".
 *
 * The followings are the available columns in table 'Template':
 * @property string $tmpId
 * @property integer $fanPageId
 * @property string $name
 * @property string $title
 * @property string $description
 * @property string $headerFile
 * @property string $msgNotTlt
 * @property string $msgNotMsg
 * @property string $msgNotImg
 * @property string $msgNotLnk
 * @property string $terms
 * @property string $strProm
 * @property string $endProm
 */
class Template extends CActiveRecord
{
    /**
     * Returns the static model of the specified AR class.
     * @param string $className active record class name.
     * @return Template the static model class
     */
    public static function model($className=__CLASS__)
    {
        return parent::model($className);
    }

    /**
     * @return string the associated database table name
     */
    public function tableName()
    {
        return 'Template';
    }

    /**
     * @return array validation rules for model attributes.
     */
    public function rules()
    {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
                    array('fanPageId', 'numerical', 'integerOnly'=>true),

                    array('name, title, description, headerFile, msgNotTlt, msgNotMsg, msgNotImg, msgNotLnk, terms', 'length', 'max'=>11),
                    array('strProm, endProm', 'safe'),
                    //array('endProm, strProm', 'type', 'type'=>'datetime', 'datetimeFormat'=>'yyyy/M/d H:m:s'),

                    // The following rule is used by search().
                    // Please remove those attributes that should not be searched.
                    array('tmpId, fanPageId, name, title, description, headerFile, msgNotTlt, msgNotMsg, msgNotImg, msgNotLnk, terms, strProm, endProm', 'safe', 'on'=>'search'),
        );
    }

    /**
     * @return array relational rules.
     */
    public function relations()
    {
        // NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        return array(
        );
    }

    /**
     * @return array customized attribute labels (name=>label)
     */
    public function attributeLabels()
    {
        return array(
            'tmpId' => 'Tmp',
            'fanPageId' => 'Fan Page',
            'name' => 'Name',
            'title' => 'Title',
            'description' => 'Description',
            'headerFile' => 'Header File',
            'msgNotTlt' => 'Msg Not Tlt',
            'msgNotMsg' => 'Msg Not Msg',
            'msgNotImg' => 'Msg Not Img',
            'msgNotLnk' => 'Msg Not Lnk',
            'terms' => 'Terms',
            'strProm' => 'Str Prom',
            'endProm' => 'End Prom',
        );
    }

    /**
     * Retrieves a list of models based on the current search/filter conditions.
     * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
     */
    public function search()
    {
        // Warning: Please modify the following code to remove attributes that
        // should not be searched.

        $criteria=new CDbCriteria;

        $criteria->compare('tmpId',$this->tmpId,true);
        $criteria->compare('fanPageId',$this->fanPageId);
        $criteria->compare('name',$this->name,true);
        $criteria->compare('title',$this->title,true);
        $criteria->compare('description',$this->description,true);
        $criteria->compare('headerFile',$this->headerFile,true);
        $criteria->compare('msgNotTlt',$this->msgNotTlt,true);
        $criteria->compare('msgNotMsg',$this->msgNotMsg,true);
        $criteria->compare('msgNotImg',$this->msgNotImg,true);
        $criteria->compare('msgNotLnk',$this->msgNotLnk,true);
        $criteria->compare('terms',$this->terms,true);
        $criteria->compare('strProm',$this->strProm,true);
        $criteria->compare('endProm',$this->endProm,true);

        return new CActiveDataProvider($this, array(
            'criteria'=>$criteria,
        ));
    }
}
4

1 に答える 1

0

モデルのルールで、次の 2 つの列を追加します。

array('datetime_1, datetime_2', 'safe'),
array('id, <attributes>, datetime_1, datetime_2', 'safe', 'on'=>'search'),

可能であれば、コード/モデルを投稿してください...

于 2012-07-27T17:16:12.180 に答える