My Relation function
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'menu' => array(self::BELONGS_TO, 'RestoMenu', 'menuId'),
'restoItemtoingrdients' => array(self::HAS_MANY, 'RestoItemtoingrdient', 'itemId'),
);
}
my search function
public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('name',$this->name,true);
$criteria->compare('price',$this->price,true);
$criteria->compare('menuId',$this->menuId);
$criteria->compare('type',$this->type,true);
$criteria->compare('new_item',$this->new_item);
$criteria->compare('unit',$this->unit,true);
$criteria->compare('quantity',$this->quantity);
$criteria->compare('description',$this->description,true);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
my gridview is
<?php $this->widget(‘zii.widgets.grid.CGridView’, array(
'id'=>'resto-item-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'name',
'price',
'menu.name',
'type',
'new_item',
/*
'unit',
'quantity',
'description',
*/
array(
'class'=>'CButtonColumn',
),
),
)); ?>
i want to add texbox filter for search with menu name but it just displays the texbox after changes
below are my changes:
search function:
public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
$criteria->with = array( 'menu' );
$criteria->compare( 'menu.name', $this->name, true );
$criteria->compare('id',$this->id);
$criteria->compare('name',$this->name,true);
$criteria->compare('price',$this->price,true);
$criteria->compare('menuId',$this->menuId);
$criteria->compare('type',$this->type,true);
$criteria->compare('new_item',$this->new_item);
$criteria->compare('unit',$this->unit,true);
$criteria->compare('quantity',$this->quantity);
$criteria->compare('description',$this->description,true);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'sort'=>array(
'attributes'=>array(
'name'=>array(
'asc'=>'menu.name',
'desc'=>'menu.name DESC',
),
'*',
),
),
));
}
<?php $this->widget(‘zii.widgets.grid.CGridView’, array(
'id'=>'resto-item-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'name',
'price',
'menu.name',
array( 'name'=>'name', 'value'=>'$data->menu->name' ),
'type',
'new_item',
/*
'unit',
'quantity',
'description',
*/
array(
'class'=>'CButtonColumn',
),
),
)); ?>
this is not working
following error occurs:
Error 500: <h1>CDbException</h1>
<p>CDbCommand failed to execute the SQL statement: SQLSTATE[23000]: Integrity constraint violation: 1052 Column ‘name’ in where clause is ambiguous. The SQL statement executed was: SELECT COUNT(DISTINCT t
.id
) FROM tbl_resto_item
t
LEFT OUTER JOIN tbl_resto_menu
menu
ON (t
.menuId
=menu
.id
) WHERE ((menu.name LIKE :ycp0) AND (name LIKE :ycp1)) (C:\wamp\www\yii\framework\db\CDbCommand.php:543)</p><pre>#0 C:\wamp\www\yii\framework\db\CDbCommand.php(433): CDbCommand->queryInternal(‘fetchColumn’, 0, Array)
#1 C:\wamp\www\yii\framework\db\ar\CActiveFinder.php(764): CDbCommand->queryScalar()
#2 C:\wamp\www\yii\framework\db\ar\CActiveFinder.php(151): CJoinElement->count(Object(CDbCriteria))
#3 C:\wamp\www\yii\framework\db\ar\CActiveRecord.php(1610): CActiveFinder->count(Object(CDbCriteria))
#4 C:\wamp\www\yii\framework\web\CActiveDataProvider.php(228): CActiveRecord->count(Object(CDbCriteria))
#5 C:\wamp\www\yii\framework\web\CDataProvider.php(224): CActiveDataProvider->calculateTotalItemCount()
#6 C:\wamp\www\yii\framework\web\CActiveDataProvider.php(178): CDataProvider->getTotalItemCount()
#7 C:\wamp\www\yii\framework\web\CDataProvider.php(168): CActiveDataProvider->fetchData()
#8 C:\wamp\www\yii\framework\zii\widgets\CBaseListView.php(125): CDataProvider->getData()
#9 C:\wamp\www\yii\framework\zii\widgets\grid\CGridView.php(339): CBaseListView->init()
#10 C:\wamp\www\yii\framework\web\CBaseController.php(147): CGridView->init()
#11 C:\wamp\www\yii\framework\web\CBaseController.php(180): CBaseController->createWidget(‘zii.widgets.gri…’, Array)
#12 C:\wamp\www\yii\testdrive\protected\views\restoItem\admin.php(64): CBaseController->widget(‘zii.widgets.gri…’, Array)
#13 C:\wamp\www\yii\framework\web\CBaseController.php(126): require(‘C:\wamp\www\yii…’)
#14 C:\wamp\www\yii\framework\web\CBaseController.php(95): CBaseController->renderInternal(‘C:\wamp\www\yii…’, Array, true)
#15 C:\wamp\www\yii\framework\web\CController.php(869): CBaseController->renderFile(‘C:\wamp\www\yii…’, Array, true)
#16 C:\wamp\www\yii\framework\web\CController.php(782): CController->renderPartial(‘admin’, Array, true)
#17 C:\wamp\www\yii\testdrive\protected\controllers\RestoItemController.php(143): CController->render(‘admin’, Array)
#18 C:\wamp\www\yii\framework\web\actions\CInlineAction.php(49): RestoItemController->actionAdmin()
#19 C:\wamp\www\yii\framework\web\CController.php(308): CInlineAction->runWithParams(Array)
#20 C:\wamp\www\yii\framework\web\filters\CFilterChain.php(133): CController->runAction(Object(CInlineAction))
#21 C:\wamp\www\yii\framework\web\filters\CFilter.php(40): CFilterChain->run()
#22 C:\wamp\www\yii\framework\web\CController.php(1145): CFilter->filter(Object(CFilterChain))
#23 C:\wamp\www\yii\framework\web\filters\CInlineFilter.php(58): CController->filterAccessControl(Object(CFilterChain))
#24 C:\wamp\www\yii\framework\web\filters\CFilterChain.php(130): CInlineFilter->filter(Object(CFilterChain))
#25 C:\wamp\www\yii\framework\web\CController.php(291): CFilterChain->run()
#26 C:\wamp\www\yii\framework\web\CController.php(265): CController->runActionWithFilters(Object(CInlineAction), Array)
#27 C:\wamp\www\yii\framework\web\CWebApplication.php(282): CController->run(‘admin’)
#28 C:\wamp\www\yii\framework\web\CWebApplication.php(141): CWebApplication->runController(‘restoitem/admin’)
#29 C:\wamp\www\yii\framework\base\CApplication.php(184): CWebApplication->processRequest()
#30 C:\wamp\www\yii\testdrive\index.php(13): CApplication->run()
#31 {main}</pre>