Yii - findAll,排序依据为

1u4esq0p  于 2022-11-23  发布在  其他
关注(0)|答案(5)|浏览(257)

如何查找具有特定列的全部,并按降序排序?

下面的代码已运行,并从开发人员ID中找到所有代码

$id = Yii::app()->user->getState('id');
$models = Games::model()->findAll('developer_id='.$id);

以下代码已执行并已订购

$models = Games::model()->findAll(array('order'=>'status'));

当我混合在一起,然后只为findAll developer_id ='.$id工作,不按顺序

$id = Yii::app()->user->getState('id');
$models = Games::model()->findAll('developer_id='.$id,array('order'=>'status'));

有什么建议吗?谢谢

ergxz8rk

ergxz8rk1#

在模型中,添加以下函数:

public function scopes() {
    return array(
        'bystatus' => array('order' => 'status DESC'),
    );
}

现在您可以执行如下查询:

$models = Games::model()->bystatus()->findAll('developer_id='.$id);

=====
额外好处:您还可以在模型中添加此函数:

public function bydeveloper($devId) {
    $this->getDbCriteria()->mergeWith(array(
        'condition' => 'developer_id = '.$devId,
    ));
    return $this;
}

现在您可以执行如下查询:

$models = Games::model()->bystatus()->bydeveloper($id)->findAll();
mznpcxlj

mznpcxlj2#

你可以试试这个-

$id = Yii::app()->user->getState('id');

$model = Games::model()->findAll(array("condition" => "developer_id = '".$id."'","order" => "status"));

它应该在工作

jrcvhitl

jrcvhitl3#

您可以尝试使用条件:

$id = Yii::app()->user->getState('id');
$criteria=new CDbCriteria;
$criteria->compare('developer_id',$id);
$criteria->order='status DESC';

$models = Games::model()->findAll($criteria);
8gsdolmq

8gsdolmq4#

这不是最好的办法但你可以做到:

$models = Games::model()->findAll('developer_id='.$id.' order by status DESC');
mklgxw1f

mklgxw1f5#

模型:find()-〉where(属性'=〉值')-〉orderBy([属性'=〉排序描述符])-〉all();

相关问题