Yii2: kartik\Select2 Gridview 过滤器中的下拉列表
Yii2: kartik\Select2 dropdown list in Gridview filter
我想用 Select2
按钮(允许用户手动编写选项的下拉按钮)更改 Gridview
中的内置搜索框过滤器。我使用两个合并表,wp_id
是两个表中的一列,而 user_id
是 Accounts
模型中的一列。使用这里使用的代码,我在我的网格上看到一个简单的文本输入默认值。
<?php echo GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
[
'attribute' => 'wp_id',
'value' => 'accounts.user_id',
'filter' => $form->field($searchModel, 'wp_id')
->widget(
Select2::className(),
[
'data' => ArrayHelper::map(Accounts::find()->all(), 'wp_id', 'user_id'),
'options' => ['placeholder' => ' --Filter by user id-- '],
'language' => 'en',
'pluginOptions' => [
'allowClear' => true,
],
]),
],
],
]
) ?>
我在这里错过了什么?
因为这里没有您要使用的 $form
,您应该直接使用小部件初始化 select2 并指定 attribute
和 model
属性选择 2 个小部件。
在下面查看您的代码应该是什么样子。
<?php
echo GridView::widget(
[
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
[
'attribute' => 'wp_id',
'value' => 'accounts.user_id',
'filter' => Select2::widget(
[
'model' => $searchModel,
'attribute' => 'wp_id',
'data' => ArrayHelper::map(Accounts::find()->all(), 'wp_id', 'user_id'),
'options' => ['placeholder' => ' --Filter by user id-- '],
'language' => 'en',
'pluginOptions' => [
'allowClear' => true,
],
]
),
],
],
]
);
我想用 Select2
按钮(允许用户手动编写选项的下拉按钮)更改 Gridview
中的内置搜索框过滤器。我使用两个合并表,wp_id
是两个表中的一列,而 user_id
是 Accounts
模型中的一列。使用这里使用的代码,我在我的网格上看到一个简单的文本输入默认值。
<?php echo GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
[
'attribute' => 'wp_id',
'value' => 'accounts.user_id',
'filter' => $form->field($searchModel, 'wp_id')
->widget(
Select2::className(),
[
'data' => ArrayHelper::map(Accounts::find()->all(), 'wp_id', 'user_id'),
'options' => ['placeholder' => ' --Filter by user id-- '],
'language' => 'en',
'pluginOptions' => [
'allowClear' => true,
],
]),
],
],
]
) ?>
我在这里错过了什么?
因为这里没有您要使用的 $form
,您应该直接使用小部件初始化 select2 并指定 attribute
和 model
属性选择 2 个小部件。
在下面查看您的代码应该是什么样子。
<?php
echo GridView::widget(
[
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
[
'attribute' => 'wp_id',
'value' => 'accounts.user_id',
'filter' => Select2::widget(
[
'model' => $searchModel,
'attribute' => 'wp_id',
'data' => ArrayHelper::map(Accounts::find()->all(), 'wp_id', 'user_id'),
'options' => ['placeholder' => ' --Filter by user id-- '],
'language' => 'en',
'pluginOptions' => [
'allowClear' => true,
],
]
),
],
],
]
);