gpt4 book ai didi

php - 如何覆盖 CActiveDataProvider 方法以在 Yii 中默认以降序显示 CGridview

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:40 26 4
gpt4 key购买 nike

我的项目中有很多模型和 GridView ,每个模型都有 create_dttm 字段。

我现在想知道如何覆盖类 CActiveDataProvider,我将在其中添加 DESC 排序条件

'sort' => array(
'defaultOrder' => 'create_dttm DESC',
)

以便它适用于我所有的 GridView ,而不是在每个 GridView 中添加条件。

例子:

public function search() {

$criteria = new CDbCriteria;
$criteria->compare('id', $this->id);
$criteria->compare('name', $this->name, true);
$criteria->compare('age', $this->age);
$criteria->compare('create_dttm', $this->create_dttm, true);
$criteria->compare('update_dttm', $this->update_dttm, true);

return new CActiveDataProvider($this, array(
'criteria' => $criteria,
'pagination' => array(
'pageSize' => 10,
),
'sort' => array(
'defaultOrder' => 'create_dttm DESC',
)
));
}

我该如何处理?

如有任何帮助,我们将不胜感激。

最佳答案

让每个模型都继承自一个 BaseModel 类,并覆盖默认的作用域方法:

<?php
class BaseModel extends CActiveRecord {
...

public function defaultScope() {
return array(
'order' => 'create_dttm DESC',
);
}

关于php - 如何覆盖 CActiveDataProvider 方法以在 Yii 中默认以降序显示 CGridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21012384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com