Я хотел бы перебрать и отредактировать данные из сводной таблицы в edit.ctp
.
Отображение и редактирование одного объекта отлично работает с кодом ниже (если есть хотя бы одна запись):
edit.ctp
echo $this->Form->control('winkels.0._joinData.winkel_id', [
'options' => $winkels,
'label' => 'Winkel',
'type' => 'select'
]);
echo $this->Form->control('winkels.0._joinData.url');
echo $this->Form->control('winkels.0._joinData.prijs');
Я мог бы получить глубину массива и изменить индекс winkels
, но это просто грязно ... Я даже не уверен, сработает ли это.
Итак, я попробовал код ниже, но он не создает правильный HTML:
if(!empty($product->winkels)) {
foreach ($product->winkels as $winkel) {
echo $this->Form->control($winkel->_joinData->winkel_id, [
'options' => $winkels,
'label' => 'Winkel',
'type' => 'select'
]);
echo $this->Form->control($winkel->_joinData->url, [
'label' => 'URL',
'value' => $winkel->_joinData->url
]);
echo $this->Form->control($winkel->_joinData->prijs, [
'label' => 'Prijs',
'value' => $winkel->_joinData->prijs
]);
}
}
Есть ли чистый способ создания этих элементов управления для сводной таблицы? Также, если $product->winkels
пусто, как мне сделать первую запись?
Дополнительная информация:
--- РЕДАКТИРОВАТЬ ---
Я изменил свой код, но мне кажется, что он не может создать «сводную таблицу»
if(!empty($product->winkels)) {
foreach ($product->winkels as $index => $winkel) {
echo $this->Form->control('winkels.$index.winkel_id');
echo $this->Form->control('winkels.$index._joinData.winkel_id', [
'options' => $winkels,
'label' => 'Winkel',
'type' => 'select'
]);
echo $this->Form->control('winkels.$index.url', [
'value' => $winkel->_joinData->url]
);
echo $this->Form->control('winkels.$index.prijs', [
'value' => $winkel->_joinData->prijs]
);
}
} else {
echo $this->Form->control('winkels.0.winkel_id');
echo $this->Form->control('winkels.0._joinData.winkel_id', [
'options' => $winkels,
'label' => 'Winkel',
'type' => 'select'
]);
echo $this->Form->control('winkels.0._joinData.url');
echo $this->Form->control('winkels.0._joinData.prijs');
}
Как видно из результата отладки, большая часть структуры отсутствует: