CFWheels Вложенные свойства и hasManyCheckBox

Я пытаюсь выяснить, как я могу обновить таблицу petevents несколькими событиями. Я не получаю ошибки, но это также не обновление / вставка. Вот соответствующие фрагменты кода и схема для соответствующих таблиц.

Посмотреть

<cfloop query="events">

#hasManyCheckBox(objectName="pet",

association="petevents",

keys="#pet.key()#,#events.id#",

label=events.eventname)#

</cfloop>

Модель питомца

<cfset hasMany(name="petEvents", dependent="deleteAll", shortcut="events")>
<!--- nested properties --->
<cfset nestedProperties(associations="petEvents", allowDelete=true)>

Модель события

<cfset hasMany(name="petevents", dependent="deleteAll")>

Модель PetEvent

<cfset belongsTo("pet")>    
<cfset belongsTo(name="event", joinType="outer")>

Просмотр обновления в контроллере

<cfset pet = model("pet").findByKey(key=params.key)>
<cfset pet.update(params.pet)>

Схема, относящаяся к соответствующим таблицам

РЕДАКТИРОВАТЬ: я изменяю свойство validatesPresenceOf "когда" только для создания. Затем я сохранил и получил эту ошибку. "Дублирующая запись" 1025-1025 "для ключа" ПЕРВИЧНЫЙ "

Спасибо,

Дерек

1 ответ

Решение

В вашем контроллере не забудьте включить petEvents:

<cfset pet = model("pet").findByKey(key=params.key, include="petEvents")>

РЕДАКТИРОВАТЬ:

В ответ на ваш дамп ниже, можете ли вы сказать мне, что вы получаете, когда вы делаете это в своем действии обновления?

<cfset pet = model("pet").findByKey(key=params.key, include="petEvents")>
<cfset pet.setProperties(params.pet)>
<cfdump var="#pet#" abort>

Если это кажется нормальным, что происходит, когда вы делаете это? Есть ошибки?

<cfset pet = model("pet").findByKey(key=params.key, include="petEvents")>
<cfset pet.setProperties(params.pet)>
<cfset pet.update()>
<cfdump var="#pet.allErrors()#">
<cfloop array="#pet.petEvents#" index="petEvent">
    <cfdump var="#petEvent.allErrors()#">
<cfloop>
<cfabort>
Другие вопросы по тегам