【问题标题】:Array_multisort fails if date is equal如果日期相等,Array_multisort 将失败
【发布时间】:2016-06-08 06:49:55
【问题描述】:

我正在使用yii 框架并使用CArrayDataProvider,因为我的数据提供程序包含3 个表。但是如果我在此使用Sort

$sort = new CSort;
        $sort->defaultOrder = 'created DESC';
        $dataProvidermain=new CArrayDataProvider($data, array(
            'id'=>'user',
            'sort' => $sort,
            'pagination'=>array(
                'pageSize'=>20,
            ),
        ));

它正在抛出错误

致命错误:嵌套级别太深 - 递归依赖?在 /var/www/goalsurf/framework/web/CArrayDataProvider.php 第 151 行

调试后,我知道当 2 个或更多元素的日期相等时,它会抛出此错误。我有三个具有相同日期的实体。2016-02-06 10:10:51。如果我更改 2 条记录的日期,它正在工作。试图从过去 2 天解决这个问题。谷歌搜索但没有解决方案。

请帮帮我。

更新 这是数组格式

[68] => Tasks Object
        (
            [taskmodel] => 1
            [quickacent] => 15
            [dailygoal] => 
            [weeklygoal] => 
            [dailygoal2] => 
            [_new:CActiveRecord:private] => 
            [_attributes:CActiveRecord:private] => Array
                (
                    [id] => 563
                    [guid] => 650c7572-3fae-4f9a-a476-8de6a21c329e
                    [user_id] => 44
                    [deli_id] => 0
                    [branch_id] => 0
                    [main_goal_id] => 0
                    [title] => Buy Babycon Dress
                    [thumb_ext] => 
                    [description] => 
                    [ecv] => 
                    [isSpam] => 0
                    [displayorder] => 0
                    [created] => 2016-02-06 10:10:52
                    [modified] => 2016-02-06 10:10:52
                )
         )
)

更新 2

我的$data 变量是

    $dataProvider=new CActiveDataProvider('Goals', array('criteria' => $criteria,'pagination'=>false));

   $dataProvider2=new CActiveDataProvider('Tasks', array('criteria' => $criteria2,'pagination'=>false));

   $dataProvider3=new CActiveDataProvider('TasksDaily', array('criteria' => $criteria2,'pagination'=>false));
    //echo "<pre>"; print_r($dataProvider2->getData()); die;
    $data=array_merge($dataProvider->getData(),$dataProvider2->getData(),$dataProvider3->getData()); 

【问题讨论】:

  • $sort 调用 $sort,这使得 $sort 递归,这就是它抛出该错误的原因。也许想出$sort 的其他名称?
  • 我将变量名从 $sort 更改为 $sortvariable 但没有变化
  • 你能以有问题的数组格式发布你的数据吗
  • $data 的格式是什么。能否请您显示 $data 的查询

标签: php arrays multidimensional-array yii array-multisort


【解决方案1】:

试试看:$sort-&gt;defaultOrder = 'created DESC, id ASC';

【讨论】:

    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 2020-09-01
    • 2017-12-02
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多