CakePHP中的afterFind()+ paginate =错误

时间:2012-05-02 22:03:14

标签: cakephp pagination

所以我在我的模型的afterFind中运行一个简单的函数:

    public function afterFind($results) {
        foreach ($results as $key => $val) {
            if ($val['User']['password']) {
                $results[$key]['User']['status'] = 'active';
            } else if ($val['Ticket']['id']) {
                $results[$key]['User']['status'] = 'pending';
            } else {
                $results[$key]['User']['status'] = 'inactive';
            }
        }
        return $results;
    }

它给了我两个错误,即使这些变量已定义,并且页面正常呈现(除了错误):

Notice (8): Undefined index: User [APP/Model/User.php, line 145]

Notice (8): Undefined index: Ticket [APP/Model/User.php, line 147]

当我死了()时,一切都很好......当我死了()分页结果时,即使所有数据都相同,我仍然会得到这些错误。

是什么给出了?

1 个答案:

答案 0 :(得分:2)

您需要检查是否已设置密钥。当分页返回的唯一值是计数时,分页正在进行find('count)`查询时,可能会失败。

isset($results[$key]['User']['password'])这样的检查可以解决问题。