Как бы вы вернули две группы данных Array для доступа к JQuery AJAX? - PullRequest
0 голосов
/ 29 июля 2010

Я изучаю тортPHP 1.26.и JQueryВ контроллере я получил два действия с этими строками кода:

function testing(){
$a = $this->User->findallByuser_id(1);
$b = $this->User->Post->findallByuser_id(1);

return a+b; // I was trying to return Array data $a and $b
}

как бы вы вернули две группы данных массива ($ a и $ b) для доступа к JQuery AJAX?

Пожалуйста, помогите, если сможете.

Ответы [ 3 ]

3 голосов
/ 29 июля 2010

Я бы использовал json_encode / json_decode , и при обращении к нему на вас, в то время как на стороне клиента вы можете использовать $ .parseJSON (json_strong) для преобразования его в объект.

3 голосов
/ 29 июля 2010

Это, по сути, ответ Ника, и я с ним полностью согласен, но я думаю, что пример может быть полезен:

function testing(){
  $a = $this->User->findallByuser_id(1);
  $b = $this->User->Post->findallByuser_id(1);

  return json_encode( array( 'User' => $a, 'Posts' => $b ) )
}

Это то, что я делаю, и я считаю, что это очень эффективно.

0 голосов
/ 29 июля 2010

Вы должны иметь отношение между пользователем и его сообщениями, возможно, с отношением HasMany.Если у вас есть такая настройка, вам нужен запрос, подобный этому

$query['conditions'] = array('User.id' => $user_id);
$query['contain'] = array('Post');
$data = $this->User->find('all', $query);

См. http://book.cakephp.org/view/1323/Containable для получения информации об использовании ContainableТакже см. http://book.cakephp.org/view/1039/Associations-Linking-Models-Together для получения информации о связывании моделей через ассоциации.

Надеюсь, что это поможет.

...