我有两个表: User 和 UserProfile 都有关系。即UserProfile 属于用户。用户表有“is_active”列,它以 0 和 1 格式存储特定用户的活动/非活动记录。
现在我有一个下拉字段,其中包含选项 Active(值 1)和 Inactive(值 0),我想根据活动和非活动用户列表过滤 CGridview 小部件。
以下是我正在做的事情:
<?php echo CHtml::dropDownList('UserProfile[is_active]', $model->user->is_active,
array(
'1'=>"Active",
'0'=>"Inactive",
), array('onchange'=>"$.fn.yiiGridView.update('yw0', {data: $(this).serialize()});") ); ?>
<?php
$this->widget('bootstrap.widgets.TbGridView', array(
'type' => 'striped bordered condensed',
'dataProvider' => $model->search(),
'filter' => $model,
'template' => '{pager}{items}',
'enableSorting' => true,
'columns' => array(
'title.name',
array(
'name' => 'first_name',
'type' => 'raw',
'value' => 'CHtml::link($data->first_name,"/userProfile/$data->user_profile_id")'
),
'last_name',
'user.username',
'user.email',
array(
'class' => 'bootstrap.widgets.TbButtonColumn',
'template' => '{update} {delete}',
),
),
'pager' => array(
'header' => '',
'hiddenPageCssClass' => 'disabled',
'maxButtonCount' => 3,
'cssFile' => false,
'class' => 'CLinkPager',
'prevPageLabel' => '<i class="icon-chevron-left"></i>',
'nextPageLabel' => '<i class="icon-chevron-right"></i>',
'firstPageLabel' => 'First',
'lastPageLabel' => 'Last',
),
'pagerCssClass' => 'pagination',
));
?>
控制器:
public function actionManage() {
$model = new UserProfile('search');
$model->unsetAttributes(); // clear any default values
if (isset($_GET['UserProfile'])) {
$model->attributes = $_GET['UserProfile'];
}
$this->render('manage', array(
'model' => $model,
));
}
这是我的搜索方法:
public function search() {
$criteria = new CDbCriteria;
$criteria->compare('first_name', $this->first_name, true);
$criteria->compare('middle_name', $this->middle_name, true);
$criteria->compare('last_name', $this->last_name, true);
$criteria->with = array('user');
$criteria->join = 'LEFT JOIN AuthAssignment ON AuthAssignment.userid=user_id';
if (isset($_GET['employee'])):
$criteria->addCondition("AuthAssignment.itemname <> 'Customer'");
$criteria->addCondition("user.is_active='$status'");
else:
$criteria->addCondition("AuthAssignment.itemname = 'Customer'");
$criteria->addCondition("user.is_active='$status'");
endif;
//Rights::getAssignedRoles(Yii::app()->session['user_id']);
return new CActiveDataProvider($this, array(
'criteria' => $criteria,
'pagination' => array(
'pageSize' => 10,
),
));
}
在这里,我希望$status
变量值是动态的,因为下拉字段更改为活动或不活动。
并且当更改下拉选项时,它显示以下错误:
TypeError: settings is undefined
$grid.addClass(settings.loadingClass);
我是 Yii 的新手,需要帮助。
谢谢