cakePHP 2 afterFind для модели

Я унаследовал код, и в Модели предыдущий разработчик использовал 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;
            }

Чтобы решить эту проблему, я добавил этот код после 2-й строки.

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

Есть ли лучший способ решить это? Я думаю, что AfterFind довольно опасен, если не используется должным образом.

0 ответов

Другие вопросы по тегам