2010-08-14 1 views
1

У меня есть две модели, которые я хотел бы сохранить в одной таблице. Например, у меня есть модель состояния, и модель payschedule должна быть сохранена в таблице состояний. Но при получении модели состояния должны возвращать только записи с оплатой = «нет», а в payschedule только записи с оплатой = «да». У меня будет до сохранения в каждой модели, чтобы убедиться, что правильное значение платежа сохраняется в таблице. Мой вопрос в том, как я могу ограничить извлечение из таблицы на модели ограничениями, описанными выше, без необходимости делать это при каждой операции find()?Две модели, использующие ту же таблицу, но с условиями в CakePHP

ps Я вас не понял, я CakePHP noob.

ответ

1

Должно быть возможностью реализовать это в методе находки() ваша модель:

public function find($type, $options = array()) { 

    // Make sure there is a 'conditions' array. 
    if(!isset($options['conditions'])) 
     $options['conditions'] = array(); 

    // Overwrite conditions in $options with your automatic conditions. 
    $options['conditions'] = array_merge(
     $options['conditions'], 
     array('payment' => 'yes') 
    ); 

    // Just pass them to the parent implementation. 
    return parent::find($type, $options); 
} 

редактировать:

следовать рекомендациям CakePHP, это, вероятно, должно быть реализовано в функции beforeFind(): http://book.cakephp.org/view/1049/beforeFind

+0

Спасибо! Попробуем это и обратимся. – RaScoop

+0

Спасибо! Работает как шарм! ... Оглядываясь назад, я могу только думать об одном ... ДУХ! – RaScoop