Yii2 排序多个参数URL
Yii2 Sort multiple parameters URL
我在 yii2 中有一个端点,我需要在其中按多个参数进行排序。我正在使用 ActiveDataProvider。这是 enpdoint:
public function actionIndex($client)
{
$sort = new Sort([
'attributes'=> ['name','mail','crdate']
]);
$query = Customer::find()
->andWhere(['client' => $client])
->orderBy($sort->orders);
$provider = new ActiveDataProvider(['query' => $query]);
return $provider->getModels();
}
现在按单个参数排序,如:customers?client=1&sort=mail 工作正常。
虽然我想按多个参数排序。我应该如何在 url?
中执行此操作
设置
$sort = new Sort([
'attributes'=> ['name','mail','crdate'],
'enableMultiSort' => true,
]);
现在您可以通过使用 ,
分隔它们来传递多个排序列,例如
?sort=name,mail
如果您在名称前加上 -
,您会得到降序,否则它会升序。
如果您想将 ,
分隔符更改为其他内容,请在排序对象的 separator
配置键中设置它。
您应该尝试搜索 Costumer 模型
public function search($params)
{
$query = Costumer::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$this->load($params);
if (!$this->validate()) {
return $dataProvider;
}
$query->andFilterWhere([some condition for search]);
return $dataProvider;
}
我在 yii2 中有一个端点,我需要在其中按多个参数进行排序。我正在使用 ActiveDataProvider。这是 enpdoint:
public function actionIndex($client)
{
$sort = new Sort([
'attributes'=> ['name','mail','crdate']
]);
$query = Customer::find()
->andWhere(['client' => $client])
->orderBy($sort->orders);
$provider = new ActiveDataProvider(['query' => $query]);
return $provider->getModels();
}
现在按单个参数排序,如:customers?client=1&sort=mail 工作正常。
虽然我想按多个参数排序。我应该如何在 url?
中执行此操作设置
$sort = new Sort([
'attributes'=> ['name','mail','crdate'],
'enableMultiSort' => true,
]);
现在您可以通过使用 ,
分隔它们来传递多个排序列,例如
?sort=name,mail
如果您在名称前加上 -
,您会得到降序,否则它会升序。
如果您想将 ,
分隔符更改为其他内容,请在排序对象的 separator
配置键中设置它。
您应该尝试搜索 Costumer 模型
public function search($params)
{
$query = Costumer::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$this->load($params);
if (!$this->validate()) {
return $dataProvider;
}
$query->andFilterWhere([some condition for search]);
return $dataProvider;
}