CakePHP обращается к массивам find ('all') - PullRequest
0 голосов
/ 07 сентября 2011

Используя CakePHP, я получаю многомерные массивы, и я не могу понять, почему иногда я могу получить к ним доступ с помощью ключа, а иногда нет. Например, у меня есть модель сотрудника со связанной информацией о заводе, и я обнаружил, что все правильно получает оба набора данных и сохраняет их в массиве. Информация сохраняется и доступна как $var['Emp'] и $var['Plant'], когда я использую Emp->find('all')

Это дает хороший массив ключей, как это:

$Employee = Array(
    [Plant] => Array(
            [0] => Array(
                 [ID]...

Однако для некоторых сотрудников (администраторов) они не связаны со списками растений, поэтому вместо того, чтобы использовать их данные о связанных заводах, мне нужно дать им список всех периодов растений, поэтому я использую Plant->find('all'). Проблема в том, что сгенерированный массив находится в странном формате, как показано ниже:

$plants = Array(
    [0] => Array(
            [Plant] => Array(
                    [ID] =>...

Так что я не могу получить доступ к $plants['Plant'], и я не могу использовать массив верхнего уровня в качестве моего $Employee['Plant'] массива. Я знаю, что могу использовать foreach и переписать массив $plants, чтобы он соответствовал другому формату, но у меня есть целый сайт, который я конвертирую в функцию find('all') торта, поэтому я хотел бы знать почему эта разница происходит, и как я могу получить доступ ко второму массиву по ключу.

1 Ответ

2 голосов
/ 07 сентября 2011

В первом случае вы возвращаете данные для сотрудника, и он группирует связанные модели, используя имя модели.Во втором случае вы возвращаете массив всех растений напрямую, и именно так CakePHP возвращает объекты.Вам нужно перебрать массив для доступа к каждому объекту Plant.

Надеюсь, это имеет смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...