Yii Code Snippet Collection (Yii 1 Only) part 1
Sudah lama gak koding yii framework dan setelah bedah bedah dokumentasi ane menemukan tulisan ini nih. Mending dishare daripada nanti lupa nyariin lagi semoga bermanfaat ya teman teman :
Cara Membuat CActiveDataproviderCara Menggunakan CActiveDataProvider di YiiFramework
<?php $high_scores_dp = new CActiveDataProvider('score', array('criteria' => array('condition' => 'game_id = ' . $model->id, 'order' => 'score desc', 'limit' => 20, // <=== TRIED CHANGING THIS VALUE ) ) , 'pagination' => false // <=== FIXED BY ADDING THIS LINE ); ?>Membuat CActiveDataprovider dengan Criteria
<?php criteria = new CDbCriteria; $criteria->with = array('foreign_table1','foreign_table2', 'foreign_table2.foreign_table3'); $criteria->select = array('id'); $criteria->condition = "foreign_table1.col1=:col_val AND foreign_table3.col3=:col_val2"; $criteria->params = array(':col_val' => some_val, ':col_val2' => other_val); $criteria->order = 'foreign_table3.col5 DESC'; $criteria->limit = 10; //with criteria $dataProvider=new CActiveDataProvider('Post', array( //'criteria'=>$criteria, //if using criteria 'criteria'=>array( 'condition'=>'status=1 AND post_id='.$model->post_id, 'order'=>'create_time DESC', 'with'=>array('author'), 'limit'=>20 ), 'pagination'=>array( 'pageSize'=>20, ), )); $dataProvider->getData() will return a list of Post objects
ACTIVE RECORDS
Menggunakan FindByAttributes di Yiiframework
<?php $usersComments=KomentarThread::model()->findAllByAttributes(array('ID_THREAD'=>$model->ID_THREAD),array( 'select'=>'t.ID_USER', 'condition'=>'t.ID_USER<>:id_user_pembuat AND t.ID_USER<>:id_user_komentar', 'params'=>array(':id_user_pembuat'=>$idUserPembuat,':id_user_komentar'=>$model->ID_USER), 'distinct'=>true, )); ?>
Cara menggunakan Exists di YiiFramework
<?php $this->findByAttributes(array('email'=>$this->email)); return $this->exists('email = :email', array(':email'=>$this->email)); ?>
Cara menggunakan Find di YiiFramework
<?php return User::model()->active() ->validemail() ->completeprofile() ->with('userprofile', 'userskillconfigs') ->together() ->findAll( array('condition' => 'id_gametype='.Gametype::MAUMAU, 'limit' => 3, 'order' => 'created DESC') ); ?>
<?php $post=Post::model()->find(array( 'select'=>'title', 'condition'=>'postID=:postID', 'params'=>array(':postID'=>10), )); <?php // find all rows satisfying the specified condition $posts=Post::model()->findAll($condition,$params); // find all rows with the specified primary keys $posts=Post::model()->findAllByPk($postIDs,$condition,$params); // find all rows with the specified attribute values $posts=Post::model()->findAllByAttributes($attributes,$condition,$params); // find all rows using the specified SQL statement $posts=Post::model()->findAllBySql($sql,$params);
<?php // get the number of rows satisfying the specified condition $n=Post::model()->count($condition,$params); // get the number of rows using the specified SQL statement $n=Post::model()->countBySql($sql,$params); // check if there is at least a row satisfying the specified condition $exists=Post::model()->exists($condition,$params) ?>
<?php $post=new Post; $post->title='sample post'; $post->content='content for the sample post'; $post->create_time=time(); $post->save(); ?>
Cara Update data di YiiFramework
Cara menggunakan find dengan cdbcriteria di YiiFramework
Cara menggunakan findAll dengan CdbCriteria di YiiFramework
<?php $post=Post::model()->findByPk(10); $post->title='new post title'; $post->save(); // s // update the rows matching the specified condition Post::model()->updateAll($attributes,$condition,$params); // update the rows matching the specified condition and primary key(s) Post::model()->updateByPk($pk,$attributes,$condition,$params); // update counter columns in the rows satisfying the specified conditions Post::model()->updateCounters($counters,$condition,$params); ?>Cara menghapus data di YiiFramework
<?php $post=Post::model()->findByPk(10); // assuming there is a post whose ID is 10 $post->delete(); // delete the row from the database table // delete the rows matching the specified condition Post::model()->deleteAll($condition,$params); // delete the rows matching the specified condition and primary key(s) Post::model()->deleteByPk($pk,$condition,$params); ?>
Menggunakan CDBCRITERIA di YiiFramework
Cara menggunakan find dengan cdbcriteria di YiiFramework
<?php $match = addcslashes($match, '%_'); // escape LIKE's special characters $q = new CDbCriteria( array( 'condition' => "content LIKE :match", // no quotes around :match 'params' => array(':match' => "%$match%") // Aha! Wildcards go here ) ); $comments = Comments::model()->findAll( $q ); // works! ?>
Cara menggunakan findAll dengan CdbCriteria di YiiFramework
<?php $match = addcslashes($match, '%_'); // escape LIKE's special characters // directly into findAll() $comments = Comments::model()->findAll( 'content LIKE :match', array(':match' => "%$match%") ); // merging in a parameterized scope: $this->getDbCriteria()->mergeWith( array( 'condition' => 'content LIKE :match', 'params' => array(':match' => "%$match%") ) ); ?>Kombinasi CDbCriteria dan Find di ActiveRecord
<?php $q = new CDbCriteria(); $q->addSearchCondition('content', $match); $comments = Comments::model()->findAll( $q ); ?>
<?php $criteria=new CDbCriteria; $criteria->select='title'; // only select the 'title' column $criteria->condition='postID=:postID'; $criteria->params=array(':postID'=>10); $post=Post::model()->find($criteria); ?>