как получить метод cakePHP Model-> field для использования условий со связанными моделями? - PullRequest
1 голос
/ 15 мая 2011

У меня проблема, мне нужно извлечь одно поле из одной записи, без связанных моделей, при использовании условий, при которых использует связанных моделей?

Пример:

Categories {name, id}  
Keywords {name, id}  
Articles {title, text, id, keyword_id, category_id}

Я хочу получить первое Articles.id, когда Article.category_id=3 и т. Д.

Использование Model->field('model.field',array(conditions)) работает, пока условия не используют внешние модели,($this->Model->recursive=4 не работает).

Использование Model->find('first', array(conditions)) работает нормально, за исключением того факта, что я получаю также связанные данные, которые мне не нужны и не нужны, ограничивая результаты рекурсии с помощьюотключение возможности использовать сопоставленные модели сравнения ..

любой совет?

edit

моя проблема, кроме плохого отладчика :-) была решена путем ограничения рекурсиипри использовании метода model->read.однако в долгосрочной перспективе, вероятно, используется сдерживаемое поведение.

Ответы [ 2 ]

1 голос
/ 15 мая 2011

Я бы использовал Model->find() с поведением Содержимое , чтобы ограничить загружаемые ассоциации и аргумент поля, чтобы ограничить результаты только требуемым полем.

1 голос
/ 15 мая 2011

Метод find () принимает аргумент fields в качестве одной из своих опций.Вы также можете установить аргумент recursive, чтобы убедиться, что вы получаете соответствующий уровень отношений.

Исходя из вашего OP, следующее извлечет то, что вы хотите, не присоединяясь ни к каким отношениям.1009 * Если ваши требования выше вышеуказанных, вы можете посмотреть обязательные модели или Способность к контейнерам .Но из того, что вы описали, вышеизложенное является подходящим решением.Это было бы излишним ИМО.

...