Sorting yii2带下拉列表的排序

Sorting yii2带下拉列表的排序,sorting,yii2,dropdown,Sorting,Yii2,Dropdown,我在listview yii2中排序有问题。我不知道如何创建下拉列表,并以单独的筛选形式进行排序 在模型中,我有: $dataProvider->sort->attributes['sort'] = [ 'asc' => ['game.rating' => SORT_ASC], 'desc' => ['game.rating' => SORT_DESC], ]; 但是如何创建下拉列表呢 型号:

我在listview yii2中排序有问题。我不知道如何创建下拉列表,并以单独的筛选形式进行排序

在模型中,我有:

$dataProvider->sort->attributes['sort'] = [
            'asc' => ['game.rating' => SORT_ASC],
            'desc' => ['game.rating' => SORT_DESC],
        ];
但是如何创建下拉列表呢

型号:

class GameSearch extends Offer
{

    public $status;
    public $title;
    public $type;
    public $platform;
    public $rating;
    public $pageSize;
    public $sort;


    public function rules()
    {
        return [
            [['status', 'platform', 'pageSize'], 'integer'],
            [['title', 'type', 'sort', 'rating'], 'string']
        ];
    }

    public function search($params, $query)
    {
        $query->joinWith(['game', 'author']);


        $dataProvider = new ActiveDataProvider([
            'query' => $query,
            'sort' => ['defaultOrder' => ['created_at' => SORT_DESC]],
            'pagination' => [
                'pageSize' => $this->pageSize,
            ],
        ]);

        $dataProvider->sort->attributes['sort'] = [
            'asc' => ['game.rating' => SORT_ASC],
            'desc' => ['game.rating' => SORT_DESC],
        ];

        if (!($this->load($params) && $this->validate())) {
            return $dataProvider;
        }

        $dataProvider->pagination->pageSize = $this->pageSize;

        $query->andFilterWhere(['like', 'game.title', $this->title])
            ->andFilterWhere(['like', 'platform', $this->platform]);

        return $dataProvider;
    }
}
和我的搜索文件

 <?= $form->field($model, 'sort')
                ->dropDownList([
                    'rating' => 'rating ASC',
                    '-rating' => 'rating DESC',
                ])
                ->label(false)
                ->error(false);
            ?>

我有同样的问题,这是我的配置 看法值1为sort ASC,值2为sort DESC

 <?= $form->field($model, 'sort')
            ->dropDownList([
                '1' => 'rating ASC',
                '2' => 'rating DESC',
            ],['id' =>'find-rating1'])
            ->label(false)
            ->error(false);
        ?>

使用$ratingValue,您可以自定义搜索查询

我也有同样的问题,这是我的配置 看法值1为sort ASC,值2为sort DESC

 <?= $form->field($model, 'sort')
            ->dropDownList([
                '1' => 'rating ASC',
                '2' => 'rating DESC',
            ],['id' =>'find-rating1'])
            ->label(false)
            ->error(false);
        ?>

使用$ratingValue,您可以定制您的搜索查询

稍微晚一点,但我在搜索类似问题时发现了这篇文章,并且 希望我最后所做的能帮助别人

将引导类添加到ListView分类器
。此外,在列表中设置您想要的任何属性,或者如果您想要查看所有内容,则将该部分省略

'sorter' => [
    'options' => [
        'class' => 'dropdown-menu'
    ],
    'attributes' => [
        'id', 'name'
    ]
],
然后用
layout
将其包装在引导程序下拉标签的其余部分中。本例将
分拣机
置于
项目
寻呼机
摘要
之上

'layout' => '
    <div class="dropdown">
        <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
            Sort <span class="caret"></span>
        </button>
        {sorter}
    </div>
{items}{pager}{summary}
',
'layout'=>'
分类
{分拣机}
{items}{pager}{summary}
',

那就走开

有点晚了,但我在搜索类似问题时发现了这篇文章,并且 希望我最后所做的能帮助别人

将引导类添加到ListView分类器
。此外,在列表中设置您想要的任何属性,或者如果您想要查看所有内容,则将该部分省略

'sorter' => [
    'options' => [
        'class' => 'dropdown-menu'
    ],
    'attributes' => [
        'id', 'name'
    ]
],
然后用
layout
将其包装在引导程序下拉标签的其余部分中。本例将
分拣机
置于
项目
寻呼机
摘要
之上

'layout' => '
    <div class="dropdown">
        <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
            Sort <span class="caret"></span>
        </button>
        {sorter}
    </div>
{items}{pager}{summary}
',
'layout'=>'
分类
{分拣机}
{items}{pager}{summary}
',
那就走开

区域中的演示url区域中的演示url