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 довольно опасен, если не используется должным образом.