У меня очень сложная структура данных, что-то вроде 10 таблиц без таблиц соединения. Мое приложение должно иметь возможность выполнять поиск в большинстве таблиц.
Для этого я решил превратить содержимое полей поиска в массив условий. Ключ - название модели, значение - условия поиска, т.е.
$conditions = array(
'Artist' => array(
'OR' => array(
'Artist.name LIKE' => '%barl%',
'Pseudonym.name LIKE' => '%barl%'
)
),
'Content' => array('Content.subject' => 'architecture'),
'Editor' => array('Editor.name LIKE' => '%Gal%'),
etc....
)
Этот массив передается моделям, которые доступны для поиска, и каждая модель принимает соответствующее условие.
$this->find('all', array('conditions' => $conditions['Artist']))
Пока все хорошо, по крайней мере, я так думаю. Теперь я начал тестировать модели и обнаружил, что снова и снова копирую один и тот же массив в разных тестовых примерах модели, и это меня беспокоит.
Есть ли способ сделать этот массив доступным для каждого теста? Может массив не лучшее решение и надо сделать модель поиска?
Какие-либо предложения?