Моя цель - отобразить 1 Проекты и много ключевых слов к ней. Моя БД проста:
cakephp форматирование массива
Проект имеет много Ключевые слова
Слово принадлежит Project
До сих пор так хорошо. Теперь я пытаюсь получить информацию в моем ProjectsController
:
public function view($id = null)
{
$this->Project->bindModel(array('hasMany' => array('Keyword' => array('className' => 'Keyword',
'foreignKey' => 'project_id')
)), false);
$this->paginate['Project']['conditions'] = array('Project.id' => $id);
$this->paginate['recursive'] = '2';
$this->set('projects', $this->paginate('Project'));
$Projects = $this->paginate('Project');
$this->set('projects', $this->paginate());
}
распечатав массив это выглядит немного неожиданный:
Array
(
[0] => Array
(
[Project] => Array
(
[id] => 3
[title] => Foo
[created] => 2013-08-05 17:39:07
[modified] => 2013-08-05 17:39:07
)
[Keyword] => Array
(
[0] => Array
(
[id] => 1
[project_id] => 3
[title] => Num1
[demand] => 50000000000
[competition] => 37889.56700
[cpc] => 676.50
[created] => 2013-06-26 17:54:48
[modified] => 2013-09-19 13:37:25
)
)
)
[1] => Array
(
[Project] => Array
(
[id] => 4
[title] => Bar
[created] => 2013-08-05 17:39:07
[modified] => 2013-08-05 17:39:07
)
[Keyword] => Array
(
[0] => Array
(
[id] => 3
[project_id] => 4
[title] => Num1
[demand] => 76534000000
[competition] => 5555.55560
[cpc] => 99.34
[created] => 2013-06-26 17:54:48
[modified] => 2013-09-19 13:37:36
)
)
)
)
Теперь у меня есть проблема, как я отобразить его с правый Project.id
? потому что новый созданный массив содержит другой идентификатор, чем Project.id
. Мой вопрос, как я могу выбирать правильный Project.id
для его отображения только в моем /View/[id]
EDIT
Я думаю, что лучший способ для работы, является матричная структура, как это:
Array
(
[Project] => Array
(
[id] => 3
[title] => Lerncoachies
[created] => 0000-00-00 00:00:00
[modified] => 2013-08-05 17:39:07
)
[Keyword] => Array
(
[0] => Array
(
[id] => 1
[project_id] => 3
[title] => Num1
[demand] => 50000000000
[competition] => 37889.56700
[cpc] => 676.50
[created] => 2013-06-26 17:54:48
[modified] => 2013-09-19 13:37:25
)
)
)
)
Это всегда хороший намек на то, чтобы не использовать термины типа «немного странно», а вместо этого (дополнительно) четко сказать, чего именно вы ожидали. Если кто-то знает торт PHP, он или она может просто рассказать вам, как это делается на примере, который вам нужен, но не мог, но так, как вы это делаете (ваш «немного странный» способ). – hakre
хорошо хороший аргумент. Я обновил свой вопрос – CTSchmidt
Разве вы не хотите разбивать страницы на страницы? –