使用CakePHP,我有事件和人員。我想在保存新事件時將許多現有人員分配給我創建的事件。我正在選擇使用複選框的人員。保存許多現有記錄和一個新記錄之間的關係
我的數據是這樣的:
data[Event][name]:Test 4
data[Event][event_type_id]:1
data[EventPerson][person_id]:
data[EventPerson][person_id][]:65
data[EventPerson][person_id][]:72
data[EventPerson][person_id][]:67
我有Event
和Person
模型,並HABTM關係到對方,以及一個events_people
表和模型建立,以及那些設置正確。我試過$this->Event->saveAssociated
和$this->Event->saveAll
。每個人都會用正確的信息保存事件記錄,既不保存與人的關係。
人將總是已存在事件保存時。我覺得我錯過了一些明顯的東西,但是我幾個小時都在傷腦筋,結果沒有任何變化。
試圖
控制器
$this->Event->create();
if ($this->Event->save($this->request->data)) {
$this->Session->setFlash(__('The event has been saved'));
return $this->redirect...
}
$people= $this->FestivalPerson->find('all',
array(
"Person.name",
"conditions" => array(
"festival_id" => $this->request->query["festival_id"]
),
"order" => "Person.name ASC"
)
);
$this->set("eventPeople", Set::combine($people, '{n}.Person.id', '{n}.Person.name'));
查看:
echo $this->Form->input('EventPerson', array('multiple' => 'checkbox'));
數據:
data[Event][EventPerson]:
data[Event][EventPerson][]:50
data[Event][EventPerson][]:65
data[Event][EventPerson][]:71
這看起來LIK e它與每個示例的結構相匹配,並且應妥善保存,但我的events_people
表仍爲空。沒有任何錯誤從PHP/MySQL出來。
@ AD7six增加了更多信息。這是控制器/視圖的相關部分,它根據通過的節日標識抓取人員列表(我在該節日創建活動時列出與節日相關的人員,只有與節日有關的人員將在事件)。 –
這不是試圖保存HABTM關係的正確表單/數據結構 - 因此它不起作用。 – AD7six
@ AD7six我目前無法嘗試J.D.的答案,但我相信你對錯誤的數據結構是正確的。有沒有正確的方法來創建我失蹤的表單元素?我寧願不手動操作數據。 –