Update/delete model with CJuiDialog (works in CGridView) เก็บไว้ก่อน

Update/delete model with CJuiDialog (works in CGridView)

http://2.delmo.ru/index.php?r=wiki/view&id=320

gridview view in modal popup Yii เก็บไว้ก่อน

In view

$this->widget(‘bootstrap.widgets.TbExtendedGridView’, array(
‘type’=>’bordered’,
‘dataProvider’=>$model->search(),
‘filter’=>$model,
‘template’=>”{items}”,
‘columns’=>array(
‘id’,
‘firstName’,
‘lastName’,
‘language’,
‘hours’,
array(
‘header’=>’Options’,
‘class’=>’bootstrap.widgets.TbButtonColumn’,
‘buttons’=>array(
‘view’=>
array(
‘url’=>’Yii::app()->createUrl(“person/view”, array(“id”=>$data->id))’,
‘options’=>array(
‘ajax’=>array(
‘type’=>’POST’,
‘url’=>”js:$(this).attr(‘href’)”,
‘success’=>’function(data) { $(“#viewModal .modal-body p”).html(data); $(“#viewModal”).modal(); }’
),
),
),
),
)
)));
?>

<!– View Popup  –>
<?php $this->beginWidget(‘bootstrap.widgets.TbModal’, array(‘id’=>’viewModal’)); ?>
<!– Popup Header –>
<div class=”modal-header”>
<h4>View Employee Details</h4>
</div>
<!– Popup Content –>
<div class=”modal-body”>
<p>Employee Details</p>
</div>
<!– Popup Footer –>
<div class=”modal-footer”>

<!– close button –>
<?php $this->widget(‘bootstrap.widgets.TbButton’, array(
‘label’=>’Close’,
‘url’=>’#’,
‘htmlOptions’=>array(‘data-dismiss’=>’modal’),
)); ?>
<!– close button ends–>
</div>
<?php $this->endWidget(); ?>
<!– View Popup ends –>

And in Controller 


public function actionView($id)
{
if( Yii::app()->request->isAjaxRequest )
{
$this->renderPartial(‘view’,array(
‘model’=>$this->loadModel($id),
), false, true);
}
else
{
$this->render(‘view’,array(
‘model’=>$this->loadModel($id),
));
}
}

การปรับแต่ง II CGridView pagination,summary,table positions

YII CGridView featured with 'template' option, which makes grid to easy customization.
  
//YII CGridView with top & bottom pagination with summary.

$this->widget('zii.widgets.grid.CGridView', array(
  'template' => "{pager}\n{summary}\n{items}\n{pager}",
);

//YII CGridView with top pagination with summary.

$this->widget('zii.widgets.grid.CGridView', array(
  'template' => "{pager}\n{summary}\n{items}",
);
//YII CGridView with top & bottom pagination without summary.

$this->widget('zii.widgets.grid.CGridView', array(
  'template' => "{pager}\n{summary}\n{items}\n{pager}",  
);

การใส่ Target Link ใน CGridView โดยใช้ Class CLinkColumn


'linkHtmlOptions'=>array('target'=>'_blank')
array( 'class'=>'CLinkColumn',
                        'header'=>'Print',
                        'linkHtmlOptions'=>array('target'=>'_blank')
 ),  

การใช้ CDbCriteria Between กับ NOT IN Between สไตล์ littleboy

Between By Date

$startDate = $_POST[‘startDate’];
$endDate = $_POST[‘endDate’];
$criteria = new CDbCriteria();
$criteria->addBetweenCondition(‘create_date’, $startDate, $endDate);

Not In Between By Date

$startDate = $_POST[‘startDate’];
$endDate = $_POST[‘endDate’];
$criteria = new CDbCriteria();
$criteria->addCondition(‘create_date < :startDate OR create_date > :endDate’);
$criteria->params = array(‘:startDate’ => $startDate, ‘:endDate’ => $endDate);

Yii Framework: example LIKE query.

<?php

$c = new CDbCriteria();
Hoge::model()->findAll($c);
// SELECT * FROM `hoge` `t`


$c = new CDbCriteria();
$c->addSearchCondition('t.fuga', null); // null, false, ''ใชใฉใฏ็„ก่ฆ–ใ•ใ‚Œใ‚‹ใ‚ˆใ†ใงใ™
 Hoge::model()->findAll($c);
// SELECT * FROM `hoge` `t`


$c = new CDbCriteria();
$c->addSearchCondition('t.fuga', 'a');
Hoge::model()->findAll($c);
// SELECT * FROM `hoge` `t` WHERE t.fuga LIKE :ycp0. Bound with :ycp0='%a%'


$c = new CDbCriteria();
$c->addSearchCondition('t.fuga', 'a%', false);
Hoge::model()->findAll($c);
// SELECT * FROM `hoge` `t` WHERE t.fuga LIKE :ycp0. Bound with :ycp0='a%'


$c = new CDbCriteria();
$c->addSearchCondition('t.fuga', 'a');
$c->addSearchCondition('t.piyo', 'd');
Hoge::model()->findAll($c);
// SELECT * FROM `hoge` `t` WHERE (t.fuga LIKE :ycp0) AND (t.piyo LIKE :ycp1). Bound with :ycp0='%a%', :ycp1='%d%'


$c = new CDbCriteria();
$c->addSearchCondition('t.fuga', 'a', true, 'OR');
$c->addSearchCondition('t.piyo', 'd', true, 'OR');
Hoge::model()->findAll($c);
// SELECT * FROM `hoge` `t` WHERE (t.fuga LIKE :ycp0) OR (t.piyo LIKE :ycp1). Bound with :ycp0='%a%', :ycp1='%d%'


$c = new CDbCriteria();
$c->compare('t.fuga', 'a', true, 'OR');
$c->compare('t.piyo', 'b', true, 'OR');
Hoge::model()->findAll($c);
// SELECT * FROM `hoge` `t` WHERE (t.fuga LIKE :ycp0) OR (t.piyo LIKE :ycp1). Bound with :ycp0='%a%', :ycp1='%b%'


Hoge::model()->findAll('t.fuga LIKE :fuga', array(':fuga' => '%a%'));
// SELECT * FROM `hoge` `t` WHERE t.fuga LIKE :fuga. Bound with :fuga='%a%'


Hoge::model()->findAll(array(
    'condition' => 't.fuga LIKE :fuga',
    'params' => array(':fuga' => '%a%'),
));
// SELECT * FROM `hoge` `t` WHERE t.fuga LIKE :fuga. Bound with :fuga='%a%'


$c = new CDbCriteria();
$c->condition = 't.fuga LIKE :fuga';
$c->params = array(':fuga' => '%a%');
Hoge::model()->findAll($c);
// SELECT * FROM `hoge` `t` WHERE t.fuga LIKE :fuga. Bound with :fuga='%a%'

Yii – CSqlDataProvider

 $sql = "SELECT mis_item_uom.* FROM mis_item_uom WHERE item_code='$model->itemCode' ";
$dataProvider=new CSqlDataProvider($sql, array(
'sort'=>array(
'attributes'=>array(
'uom',
'item_code',
'rate',
),
),
'pagination'=>array(
'pageSize'=>10,
),
));
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
'uom','item_code','rate',
)
));