agan2 dan sis2 skalian,ane mau bertanya,
ane mau nampilin data dari model lain pake cgridview
tabel nya sih kayak gini
-lksaData-
id
name
code
dst
-childData-
id
name
code
lksaData_id
nah ane sih bikinnya kayak gini
-view lksaData-
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'child-data-grid',
'dataProvider'=>$model->childData->findAnak($model->id),
'filter'=>$model,
'columns'=>array(
'id',
'child_code',
'child_name',
'gender_id',
'pob',
'dob',
array(
'class'=>'CButtonColumn',
),
),
)); ?>
ane mau nampilin di view lksaData semua data dari childData yang ber lksaData_id nya sama ama id lksaData
dan di modelnya childData
public function findAnak($id)
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('childData.id',$id,true);
//$criteria->addCondition('regency_id=:userReg');
//$criteria->params = array(':id'=>$id);
$criteria->with=array('childData');
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
tapi kok muncul Fatal error: Call to a member function findAnak() on a non-object in C:\xampp\htdocs\lksa_kemensos\protected\views\lksaData\view.php on line 69 kenapa yah?ada yg salah dengan pemanggilan dkk nya?
Angela88
(Angela Arrie)
November 17, 2011, 2:04am
2
loper_kesasar:
agan2 dan sis2 skalian,ane mau bertanya,
ane mau nampilin data dari model lain pake cgridview
tabel nya sih kayak gini
-lksaData-
id
name
code
dst
-childData-
id
name
code
lksaData_id
nah ane sih bikinnya kayak gini
-view lksaData-
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'child-data-grid',
'dataProvider'=>$model->childData->findAnak($model->id),
'filter'=>$model,
'columns'=>array(
'id',
'child_code',
'child_name',
'gender_id',
'pob',
'dob',
array(
'class'=>'CButtonColumn',
),
),
)); ?>
ane mau nampilin di view lksaData semua data dari childData yang ber lksaData_id nya sama ama id lksaData
dan di modelnya childData
public function findAnak($id)
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('childData.id',$id,true);
//$criteria->addCondition('regency_id=:userReg');
//$criteria->params = array(':id'=>$id);
$criteria->with=array('childData');
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
tapi kok muncul Fatal error: Call to a member function findAnak() on a non-object in C:\xampp\htdocs\lksa_kemensos\protected\views\lksaData\view.php on line 69 kenapa yah?ada yg salah dengan pemanggilan dkk nya?
mungkin karena function nya dipanggil dari model lain gan…
di action viewnya agan (mungkin) ada sintaks ini
$model = new LksaData;
jadi modelnya ngambil dari model lksaData bukan childData…
mungkin lo ya gan… soalnya ga liat action viewnya jg…
kalo ternyata udah
$model = new ChildData;
ya maap ga tau gan…
Hmhm,g ad sih sis,tapi emang model nya masih pnya lksadata,terus ada saran g klo mo nampilin data yg lksa I’d nya sama am yg lg di liat?soalnya ane coba find anak nya di model lksadata bingung hehe
Angela88
(Angela Arrie)
November 17, 2011, 3:40am
4
loper_kesasar:
Hmhm,g ad sih sis,tapi emang model nya masih pnya lksadata,terus ada saran g klo mo nampilin data yg lksa I’d nya sama am yg lg di liat?soalnya ane coba find anak nya di model lksadata bingung hehe
kalo function ini di model lksadata gmn?
public function findAnak($id)
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$id,true);
$criteria->condition = "t.id = childData.id";
//$criteria->params = array(':id'=>$id);
$criteria->with=array('childData');
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
Angela88
(Angela Arrie)
November 17, 2011, 3:45am
5
kalo ga
$criteria->condition = "t.id = childData.id and t.id = ".$id;
T.Id itu buat id dri lksaData kan ya sis?
Belum ane coba,tapi thx bgt dah respon,hehe
Angela88
(Angela Arrie)
November 17, 2011, 5:42am
7
loper_kesasar:
T.Id itu buat id dri lksaData kan ya sis?
Belum ane coba,tapi thx bgt dah respon,hehe
iya…
alias table pertama di model(kalo join) kan pake t…
cmiiw
xicath
(Xicath)
November 17, 2011, 5:56am
8
loper_kesasar:
agan2 dan sis2 skalian,ane mau bertanya,
ane mau nampilin data dari model lain pake cgridview
tabel nya sih kayak gini
-lksaData-
id
name
code
dst
-childData-
id
name
code
lksaData_id
Bukannya kalo mau menampilkan data dari tabel lain tinggal di set di relationnya gan? jadi ga usah query lagi
// di model lksaData
public function relations()
{
return array(
'child_Data'=>array(self::HAS_MANY, 'childData', 'lksaData_id'),
);
}
panggil di view
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'child-data-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'child_code',
'child_name',
'gender_id',
'pob',
'dob',
array('name'=>'child_Data', 'value'=>'$data->child_Data->lksaData_id'),
array(
'class'=>'CButtonColumn',
),
),
)); ?>
blum tak coba yo
belom bisa nih @sis angela88 cara bikin kayak http://www.yiiframework.com/forum/index.php?/topic/25071-ask-delete-button-in-gridview-from-other-model/ gimana ya?kurang lebih saya mau buat kayak gitu,hehehemohon bntuan
Angela88
(Angela Arrie)
November 18, 2011, 2:01am
10
oh kaya punya q itu???
view
<?php $this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$model->images($model->id_content),
'enablePagination'=>false,
'columns'=>array(
'id_image',
'id_image_type'=>'imageType.name',
'date_last_update',
'img_name',
'img_type',
'img_size',
'img_width',
'img_height',
array(
'header'=>'Action',
'value'=>'CHtml::link( \'Delete\', array(\'content/delete2\',\'id\'=>$data->id_image) , array(\'confirm\'=>\'Are you sure you wish to Delete this image?\',\'title\'=>\'Delete Image\') )',
'type'=>'raw',
),
),
)); ?>
controller
public function actionView($id)
{
$content=Image::model()->findByAttributes(array('id_content'=>$id));
$image=new CActiveDataProvider($content);
$this->render('view',array(
'model'=>$this->loadModel($id),
'image'=>$image,
));
}
model
public function images($id_content){
$criteria = new CDbCriteria( array(
'condition' => 'id_content = :id',
'params' => array(':id' => $id_content)
) );
return new CActiveDataProvider('Image', array(
'criteria'=>$criteria,
));
}
sama kaya yg koding sebelumnya kan…
hooo blom nambahin di controller hehehehe siip dicoba langsung yaa
wah makasih ya sis, bener2 membantu
'enablePagination'=>false,
itu biar g ada page nya ya?kalau mau batasin 1 table nya 5 aja gimana ya?di tambahin ‘limit’ bukan?tapi g ngaruh jadinya hmhm
mau tanya satu lagi ini kan ane ada gender_id biar bisa diubah jadi Ce atau Co gimana ya klo bda model gini?ane coba pake $model->childData->gender_id g ltangkep objeknya huhu
d_ang23
(D Ang23)
November 21, 2011, 10:21am
14
Bukannya kalo mau menampilkan data dari tabel lain tinggal di set di relationnya gan? jadi ga usah query lagi
// di model lksaData
public function relations()
{
return array(
'child_Data'=>array(self::HAS_MANY, 'childData', 'lksaData_id'),
);
}
panggil di view
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'child-data-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'child_code',
'child_name',
'gender_id',
'pob',
'dob',
array('name'=>'child_Data', 'value'=>'$data->child_Data->lksaData_id'),
array(
'class'=>'CButtonColumn',
),
),
)); ?>
blum tak coba yo
Yap, mending pake Relation, lebih efisien, ane pake Relation 3 tabel berhasil
Angela88
(Angela Arrie)
November 21, 2011, 11:19am
15
q biasanya bikin function di modelnya. ex :status
public function getStatus($val){
if($val==1)
return "Active";
else if($val==0)
return "Inactive";
else if($val==2)
return "Pending";
else if($val==3)
return "Reject";
}
di gridview
array(
'name'=>'status',
'type'=>'raw',
'value'=>'MyModel::model()->getStatus($data->status)',
),
'enablePagination'=>false'
-> iya buat disable paging…
q lum pernah cba pake limit c gan…
kebetulan q lagi dikejar target jg jadi ga bisa bantu carinya…