Есть ли в CakePHP Model-> find эквивалент, который возвращает массив объектов? - PullRequest
0 голосов
/ 11 августа 2011

CakePHP возвращает вложенные массивы и не содержит коллекций объектов для метода Model->find. Предлагает ли CakePHP способ получения коллекции моделей?

Ответы [ 3 ]

1 голос
/ 11 августа 2011

Вы можете использовать Set класс до сопоставления массивов с объектами обратно ), как указано в этом сообщении в блоге .

CakePHP (еще в дни совместимости с PHP 4) решил использовать массивы над объектами, поскольку PHP упакован множеством функций манипулирования массивами, которые облегчают работу с массивами.PHP любит массивы, поэтому я полагаю, что в то время имело смысл сбалансировать сильные стороны PHP с хорошими шаблонами проектирования.

Я считаю, что модели CakePHP 2.0 по-прежнему будут возвращать массивы (я полагаю, для обратной совместимости), хотя вы можетепосмотрите на Lithium Framework - который начал свою жизнь, намереваясь стать CakePHP 3.0 (поддерживающим только PHP 5.3+) - или другой из платформ PHP 5+.

Эти новые платформы имеют тенденциюв полной мере воспользоваться преимуществами новых функций OOP , доступных в PHP 5, *1019* и стремиться возвращать записи в виде объектов (см. модели в Lithium API и manual ).

1 голос
/ 11 августа 2011

Нет, нравится вам это или нет, для торта в качестве данных используются многомерные массивы (для обычных функций CRUD). Но если вы хотите, вы можете переопределить метод find для сопоставления массива с объектами.

0 голосов
/ 11 августа 2011

вы можете конвертировать в afterFind ().Но зачем тебе это?

...