У меня есть отношение HABTM между двумя таблицами: items
и locations
, используя таблицу items_locations
, чтобы присоединиться к ним.CakePHP редактирует сразу несколько записей
items_locations
также хранит дополнительную информацию. Вот схема
items_locations(id, location_id, item_id, quantity)
Я пытаюсь создать страницу, которая показывает все элементы в одном месте и позволяет пользователю, через интерфейс DataGrid стиль, редактировать несколько полей сразу:
Location: Factory XYZ
___________________________
|___Item____|___Quantity___|
| Widget | 3 |
| Sprocket | 1 |
| Doohickey | 15 |
----------------------------
чтобы помочь с этим, у меня есть контроллер с именем InventoryController
, который имеет:
var $uses = array('Item', 'Location'); // should I add 'ItemsLocation' ?
Как построить многомерную форму для редактирования этой информации?
Edit:
Я пытаюсь получить мои данные, чтобы выглядеть, как Deceze описал ниже, но у меня возникли проблемы снова ...
// inventory_controller.php
function edit($locationId) {
$this->data = $this->Item->ItemsLocation->find(
'all',
array(
"conditions" => array("location_id" => $locationId)
)
);
, когда я делаю что , $this->data
выходит так:
Array (
[0] => Array (
[ItemsLocation] => Array (
[id] => 16
[location_id] => 1
[item_id] => 1
[quantity] => 5
)
)
[1] => Array (
[ItemsLocation] => Array (/* .. etc .. */)
)
)
, что делает теперь намного больше смысла. Хотя я все еще нахожусь на кирпичной стене. Можно ли взглянуть на мое редактирование на исходный пост? – nickf
Ну, формат будет немного отличаться, если вы ** найдете ** данные. То, что я говорю, это правильный формат для ** POSTing формы для контроллера. ** Попробуйте 'debug ($ this-> data)' в контроллере после получения данных POST. – deceze
, но вам не понадобится в этом формате, чтобы представление могло делать что-то с помощью: '$ form-> input ('ItemsLocation.0.id')' – nickf