Showing posts with label yii. Show all posts
Showing posts with label yii. Show all posts
YiiDateTimePicker

YiiDateTimePicker

Usuage sample:

$this->widget('ext.YiiDateTimePicker.jqueryDateTime', array(
       'model' => $model,
       'attribute' => 'attribute-tablefield',
       'options' => array(
        'lang' => 'en',
        'format'=> 'Y-m-d H:i', //Y-m-d,
        'value' => date('Y-m-d H:i'),  
        'timepicker'=> TRUE, // False
        'step' => 15,
          'closeOnDateSelect' => true,
  'closeOnWithoutClick' => true,
  'scrollMonth' => false,

  'scrollTime' => false,
       ), // DateTimePicker options
       'htmlOptions' => array(
        'style' => 'width:140px; display:none;',
           'placeholder' => 'YYYY-MM-DD',
           'class' => $model->hasErrors('attribute-tablefield') ? CHtml::$errorCss : '',
       ),
   ));

Reference
 http://www.yiiframework.com/extension/date-time-picker/
Yii command for db query

Yii command for db query

$sql = "SELECT ".$requireID." FROM ".$tableName." where ".$ID." ='".$val."';";
$cmd = Yii::app()->db->createCommand($sql);
result = $cmd->queryRow();

-----------------------------------------------------

$member = Person::model()->findByAttributes(
array()
, " delete_flg = :deleteFlg AND user_is_locked = :isLocked ",
array(
":deleteFlg" => 0,
":isLocked" => 0,
));

--------------------------------------

$member = BaseMember::model()->findByPk(
                     $memberId,
               ' delete_flg=:flag AND user_is_locked=:flag ',
                array(':flag' => 0));


-----------------------------------------------------
$sql = "SELECT name FROM people";
$cmd = Yii::app()->db->createCommand($sql);
$result = $cmd->queryRow();
$result2 = $cmd->queryAll();

------------------------------------------------------
$criteria = array("condition"=>"(status=1 AND del_flg=0)");
$result = Modelname ::model()->findAll($criteria);

----------------------------------------------
 $sql = Yii::app()->db->createCommand()
->select(array('rt.*','ut.*'))
->from('riders_tweets rt')
->leftJoin('user_twitter ut','ut.tw_id_str = rt.user_id_str')
->where(array('and','rt.del_flg=0','rt.status=1','rt.user_id_str="'.$user_id_str.'"'))
->limit($limit)
->offset($offset)
->order('rt_id_str DESC')
->queryAll();
return $sql;
//array result;
---------------------------

$criteria = new CDbCriteria();
$criteria->select= "t.* , categories_post.category_name";
$criteria->alias = 't';
$criteria->join = 'LEFT JOIN categories_post ON categories_post.category_id = t.sch_category_id';
$criteria->condition= $where;
$criteria->order = 't.schedules_date DESC, t.display_order DESC';
//$criteria->group = 't.sch_category_id';
//$count = Modelname::model()->count($criteria);
$data = Modelname::model()->findAll($criteria);
return $data;


if(is_array($data)) {
                  foreach($data $key=>$val) {
                        $Id = CHtml::encode($val->id);
                        ${field_name} = CHtml::encode($val->{field_name});
                   }
}
----------------------------------
$criteria = new CDbCriteria;
$criteria->condition='post_id=:post_id AND status=:status';
$criteria->params=array(':post_id'=>8, ':status'=>'active');
$post = Post::model()->find($criteria);
---------------------------------------

1. Supply a $condition as string:
Person::model()->findByAttributes(
    array('first_name'=>$firstName,'last_name'=>$lastName),
    'status=1'
);


2. Supply a $condition as string that contains placeholder and $params as array with placeholder values:
Person::model()->findByAttributes(
    array('first_name'=>$firstName,'last_name'=>$lastName),
    'status=:status',
    array(':status'=>1)
);


3. Supply a $condition as a CDbCriteria:
$criteria=New CDbCritieria;
$critieria->condition='status=1';
Person::model()->findByAttributes(
    array('first_name'=>$firstName,'last_name'=>$lastName),
    $criteria);


4. Supply a $condition as array with property values for CDbCriteria:
Person::model()->findByAttributes(
    array('first_name'=>$firstName,'last_name'=>$lastName),
    array(
        'condition'=>'status=:status', 
        'params'=>array(':status'=>1)
    )
);

-----------------------------

Updates
---------------
$user = User::model()->findByPk(1);
$user->lastLogin = date('Y-m-d H:i:s');
$user->update(array('lastLogin'));

$person = Person::model()->findByAttributes(
    array('first_name'=>$firstName,'last_name'=>$lastName));
$person->notification = 0;
$person->update(array('notification'));

Links
chtml : http://www.yiiframework.com/wiki/48/by-example-chtml

Yii csort

Yii csort

Yii sort : sort multi table field with csort
csort cheat sheet

Example here are 3 tables joins to 4th table: [result]

Model :
     $sort = new CSort();
  $criteria->with = array('module','action','testcase');
               //1.  with joins the table with table respective alias name
               so we may have to use  t.-------- field for current table

$sort->attributes = array(
'module_id'=>array(
                             //2. module id is also used in view as name but module_name is displayed field
      'asc'=>'module.module_name',
       'desc'=>'module.module_name desc',
),
'action_id'=>array(
     'asc'=>'action.action_title',
     'desc'=>'action.action_title desc',
),
'testcase_id'=>array(
     'asc'=>'testcase.testcase_title',
     'desc'=>'testcase.testcase_title desc',
),
'*',
);

$sort->defaultOrder=array('module_id' => CSort::SORT_ASC,'action_id' => CSort::SORT_DESC,'testcase_id' => CSort::SORT_DESC);
//3. set default  sort order, it has  array of multiple field  that is sort by first iten then sort by next.

return new CActiveDataProvider($this, array(
'pagination'=>array(
                'pageSize'=>BE_ROW_PER_PAGE_10,
             ),
'sort'=>$sort, //4. pass the $sort value 
'criteria'=>$criteria
));

-------------------------------------------------------------------------------------

View File

  ..............
'columns'=>array(
  ........
// module_id is field name in table join to module table and get module_name 
            array(
                'name'=>'module_id',
                'value'=>'($data->module)?$data->module->module_name:""',
                'headerHtmlOptions'=>array('style'=>'width:200px;text-align:center;'),
                'htmlOptions'=>array(),
                ),
// or we can use virtual name that is not actual field in table ,create name in model like action_name here public $action_name;
//action_name is used in sort attribute like action_id used here
            array(
                'name'=>'action_name',
                'value'=>'($data->action)?$data->action_title:""',
                'headerHtmlOptions'=>array('style'=>'width:200px;text-align:center;'),
                'htmlOptions'=>array(),
                ),
    ...........


Yii Database Query

Yii Database Query

Cheatsheet Example


CDB command Update

$id = 5;
$modified_on = NOW; 
$sql = "UPDATE table SET modified_on='".$modified_on."', name='hello ' WHERE result_id=:result_id"; 
$command = Yii::app()->db->createCommand($sql);
$command->bindParam(":result_id", $id , PDO::PARAM_STR );
$command->execute();

CDB command query

$sql = "SELECT action_id FROM action_testcase where testcase_id ='".$this->testcase_id."';";
$cmd = Yii::app()->db->createCommand($sql);
$result = $cmd->queryRow();
$action_id = $result['action_id'];