cakePHP 2 afterFind for Model

时间:2014-04-23 15:25:55

标签: php cakephp cakephp-2.3 cakephp-appmodel

我继承了代码,在模型中,前一个开发人员使用了afterFind,但是当执行afterFind时,如果与该表有多对多的关系,则将其保持打开状态。因此,当从该模型中获取一个元素时,它可以正常工作,但使用关系会破坏它。

public function afterFind($results, $primary = false) {
    foreach ($results as $key => $val) {
        if (isset($results[$key]['Pitch'])) {
            if (isset($results[$key]['Pitch']['expiry_date'])) {
                    if($results[$key]['Pitch']['expiry_date'] > time()) {
                            $results[$key]['Pitch']['days_left'] = SOMETHINGHERE;
                    } else {
                            $results[$key]['Pitch']['days_left'] = 0;
                    }
            } else {
                    $results[$key]['Pitch']['days_left'] = 0;
            }

为了解决这个问题,我在第二行之后添加了该代码。

//                    if (!isset($results[$key]['Pitch']['id'])) {
//                        return $results;
//     

有没有更好的方法来解决这个问题?我认为如果没有正确使用,AfterFind会非常危险。

0 个答案:

没有答案