Hi all,
I’m trying to incorporate data from This tutorial in my own application.
I’m able to display the data, but am struggling, as I am consistently getting apparent sql errors when trying to search.
Now, I have tree tables
Person -> Junior -> Assignment
and related models
In person is a name (varchar) which I want to have searchable in assignment gridview.
I have
public $last_name;
In rules
array('x, y, last_name ', 'safe', 'on' => 'search'),
In criteria
$criteria->with = array('junior', 'junior.person');
$criteria->compare('junior.person.name_last', $this->last_name);
Whenever I try to search on name, I get:
<p>CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'junior.person.name_last' in 'where clause'. The SQL statement executed was: SELECT COUNT(DISTINCT `t`.`id`) FROM `assignment` `t` LEFT OUTER JOIN `junior` `junior` ON (`t`.`junior`=`junior`.`id`) LEFT OUTER JOIN `person` `person` ON (`junior`.`id`=`person`.`id`) WHERE (assignmentJunior.name.name_last=:ycp0) (/var/www/html/juniordb/yii/framework/db/CDbCommand.php:528)</p><pre>#0 /var/www/html/juniordb/yii/framework/db/CDbCommand.php(425): CDbCommand->queryInternal('fetchColumn', 0, Array)
#1 /var/www/html/juniordb/yii/framework/db/ar/CActiveFinder.php(728): CDbCommand->queryScalar()
#2 /var/www/html/juniordb/yii/framework/db/ar/CActiveFinder.php(155): CJoinElement->count(Object(CDbCriteria))
#3 /var/www/html/juniordb/yii/framework/db/ar/CActiveRecord.php(1544): CActiveFinder->count(Object(CDbCriteria))
#4 /var/www/html/juniordb/yii/framework/web/CActiveDataProvider.php(179): CActiveRecord->count(Object(CDbCriteria))
#5 /var/www/html/juniordb/yii/framework/web/CDataProvider.php(193): CActiveDataProvider->calculateTotalItemCount()
#6 /var/www/html/juniordb/yii/framework/web/CActiveDataProvider.php(129): CDataProvider->getTotalItemCount()
#7 /var/www/html/juniordb/yii/framework/web/CDataProvider.php(137): CActiveDataProvider->fetchData()
#8 /var/www/html/juniordb/yii/framework/zii/widgets/CBaseListView.php(108): CDataProvider->getData()
#9 /var/www/html/juniordb/yii/framework/zii/widgets/grid/CGridView.php(289): CBaseListView->init()
#10 /var/www/html/juniordb/yii/framework/web/CBaseController.php(148): CGridView->init()
#11 /var/www/html/juniordb/yii/framework/web/CBaseController.php(173): CBaseController->createWidget('zii.widgets.gri...', Array)
#12 /var/www/html/juniordb/protected/views/assignment/admin.php(42): CBaseController->widget('zii.widgets.gri...', Array)
#13 /var/www/html/juniordb/yii/framework/web/CBaseController.php(127): require('/var/www/html/j...')
#14 /var/www/html/juniordb/yii/framework/web/CBaseController.php(96): CBaseController->renderInternal('/var/www/html/j...', Array, true)
#15 /var/www/html/juniordb/yii/framework/web/CController.php(870): CBaseController->renderFile('/var/www/html/j...', Array, true)
#16 /var/www/html/juniordb/yii/framework/web/CController.php(783): CController->renderPartial('admin', Array, true)
#17 /var/www/html/juniordb/protected/controllers/AssignmentController.php(73): CController->render('admin', Array)
#18 /var/www/html/juniordb/yii/framework/web/actions/CInlineAction.php(50): AssignmentController->actionAdmin()
#19 /var/www/html/juniordb/yii/framework/web/CController.php(309): CInlineAction->runWithParams(Array)
#20 /var/www/html/juniordb/yii/framework/web/CController.php(287): CController->runAction(Object(CInlineAction))
#21 /var/www/html/juniordb/yii/framework/web/CController.php(266): CController->runActionWithFilters(Object(CInlineAction), Array)
#22 /var/www/html/juniordb/yii/framework/web/CWebApplication.php(283): CController->run('admin')
#23 /var/www/html/juniordb/yii/framework/web/CWebApplication.php(142): CWebApplication->runController('assignment/admi...')
#24 /var/www/html/juniordb/yii/framework/base/CApplication.php(162): CWebApplication->processRequest()
#25 /var/www/html/juniordb/index.php(16): CApplication->run()
#26 {main}</pre>
Please Help!