У меня есть несколько моделей, которые делят одни поля (например, имя), но отличаются в других полях. Есть ли какой-либо wan, чтобы найти все ModelX ModelY и ModelZ, которые имеют имя «foo». Спасибо за любые предложения.CakePHP: Поиск по нескольким моделям
2
A
ответ
3
Что-то вроде этого?
$models = array('Post', 'Comment', 'Article');
$results = array();
foreach($models as $model) {
$this->loadModel($model);
$results[$model] = $this->{$model}->find('all', array(
'conditions' => array(
$model'.name' => $name
)
));
}
2
Если они связаны, вы должны иметь возможность указать модель, за которой следует '.' в пределах находки.
$this->find('all', array(
'conditions' => array(
'OR' => array(
'Article.field' => 'foo',
'Comment.field' => 'foo',
'Post.field' => 'foo',
)
),
'fields' => array('Article.field', 'Comment.field', 'Post.field')
));
Если у вас есть поле, которое является репликацией данных из другой таблицы, которая не является простым идентификатором, вы, вероятно, ошибаетесь. –