私は 2 つのテーブルを持っています: User と UserProfile は両方とも関係があります。つまり、UserProfile は User に属します。ユーザー テーブルには、特定のユーザーのアクティブ/非アクティブ レコードを 0 と 1 の形式で格納する列「is_active」があります。
現在、オプション Active (値 1) と Inactive (値 0) を含む 1 つのドロップダウン フィールドがあり、アクティブおよび非アクティブなユーザー リストに従って 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 の初心者で、これについて助けが必要です。
ありがとう