Create a file suppose named 'MyActiveRecord.php' suppose in 'components' folder.
<?php class MyActiveRecord extends CActiveRecord { public function beforeValidate() { if(parent::beforeValidate()) { /* Do some common work */ return true; } } function beforeSave() { if (parent::beforeSave()) { if($this->isNewRecord) { $maxOrderNumber = Yii::app()->db->createCommand() ->select('max(id) as max') ->from($this->tableName()) ->queryScalar(); $this->id = intval($maxOrderNumber) + 1; } } return true; } } ?>
Now create a Model named 'Email' in 'models' folder.
See the highlighted extends object that is the previous one.
The MyActiveRecord does when a new Email inserted to database, set its id as
current id+1 as new id.
<?php class Email extends MyActiveRecord { public static function model($className=__CLASS__) { return parent::model($className); } public function tableName() { return 'email'; } public function rules() { return array( array('address, contact_id, contact_user_id', 'required'), array('contact_id, contact_user_id', 'numerical'), array('address, email_label', 'length', 'max'=>250), array('email_label, address', 'safe', 'on'=>'search') ); } public function attributeLabels() { return array( "address" => "Address", "email_label" => "Category" ); } public function findByParameters($parameters) { $criteria=new CDbCriteria; foreach ($parameters as $key => $value) { $criteria->compare($key, $value,true); } return new CActiveDataProvider($this, array( 'criteria'=>$criteria )); } } ?>
No comments:
Post a Comment