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

Я изучаю CakePHP 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?

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


person user327712    schedule 29.07.2010    source источник


Ответы (3)


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

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

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

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

person Rob Wilkerson    schedule 29.07.2010

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

person Nik Chankov    schedule 29.07.2010
comment
+1 Я добавил пример в свой собственный ответ, потому что комментарии не обрабатывают код, но это именно то, что я бы сделал. - person Rob Wilkerson; 29.07.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 для получения информации о связывании моделей через ассоциации.

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

person Oscar    schedule 29.07.2010