2012-06-11 4 views
1

Если я делаю mainModel->find('all') вызов на модели, мои данные возвращаются в следующем формате:формат CakePHP найти результат

[ 
    { 
     'mainModel': {}, 
     'associatedModel1': {}, 
     'associatedModel2': {}, 
     'associatedModel3': {}, 
     'associatedModel4': {} 
    }, 
    { 
     'mainModel': {}, 
     'associatedModel1': {}, 
     'associatedModel2': {}, 
     'associatedModel3': {}, 
     'associatedModel4': {} 
    } 
] 

как я могу заставить его вернуться в следующем формате:

[ 
    { 
     'mainModel': { 
      'associatedModel1': {}, 
      'associatedModel2': {}, 
      'associatedModel3': {}, 
      'associatedModel4': {} 
     } 
    }, 
    { 
     'mainModel': { 
      'associatedModel1': {}, 
      'associatedModel2': {}, 
      'associatedModel3': {}, 
      'associatedModel4': {} 
     } 
    } 
] 

пожалуйста, извините мое форматирование объектных обозначений. Я считаю, что JSON - самый красивый способ объяснить структуры данных.

ответ

1

Вы не можете изменить формат, в котором данные возвращаются из поиска, но вы можете изменить формат после его возврата. Проверьте библиотеку Set: http://book.cakephp.org/2.0/en/core-utility-libraries/set.html

Горящий вопрос: ПОЧЕМУ вы хотите изменить структуру? CakePHP ожидает данные в этой структуре, и если вы начнете ее менять, ваше приложение будет неожиданно/трудно отслеживать пути ...

+0

, потому что extjs не нравится этот формат для собственных моделей и ассоциаций: http: // stackoverflow.com/questions/10975454/getting-extjs-and-cakephp-associated-models-to-work-together также, я знаю о наборе, но как бы использовать его для достижения формата, который я ищу? – LordZardeck

+0

Извините. Я не настроен гуру. Если он усложняется, я пишу вспомогательную рутину для форматирования. Это может быть вашим лучшим выбором. Оберните его в помощнике, а затем, на ваш взгляд: echo $ this-> Extjs-> format ($ data) – RichardAtHome

Смежные вопросы