我有一個與menu.cfc和menuItem.cfc多對一/一對多關係的問題。它們都擴展node.cfc(最後聲明這些)。一對多非共同
index.cfm
<cfset oMenu = entityNew("menu")>
<cfset oMenu.setTitle("Main menu")>
<cfset entitySave(oMenu)>
<cfset ORMFlush()>
<cfset oMenuItem = entityNew("menuItem")>
<cfset oMenuItem.setTitle("First main menu item")>
<cfset oMenuItem.setMenu(oMenu)>
<cfset entitySave(oMenuItem)>
<cfset ORMFlush()>
<cfdump var="#oMenu.getMenuItems()#">
<!--- array[empty] --->
<!--- WHY ?--->
在DB,我menu_item.menu_id是正確的。
我也試過
<cfset oMenu = entityNew("menu")>
<cfset oMenu.setTitle("Main menu")>
<cfset entitySave(oMenu)>
<cfset ORMFlush()>
<cfset oMenuItem = entityNew("menuItem")>
<cfset oMenuItem.setTitle("First main menu item")>
<cfset entitySave(oMenuItem)>
<cfset ORMFlush()>
<cfset oMenu.addMenuItem(oMenuItem)>
<cfdump var="#oMenu.getMenuItems()#">
<!--- array[empty] --->
在DB,我menu_item.menu_id爲空!
如果您對我做錯了什麼有所瞭解,那將會很好。 謝謝!
node.cfc
<cfcomponent entityname="node" output="false" persistent="true" table="nodes" discriminatorcolumn="type">
<cfproperty name="id" fieldtype="id" generator="identity" default="0" unsavedvalue="0">
<cfproperty name="type" insert="false" update="false">
<cfproperty name="title" ormtype="string" notnull="true" default="" loadInForm="true" required="true">
<cfproperty name="systemName" column="system_name" ormtype="string" notnull="true" default="" loadInForm="true" uniquekey="system_name_lang">
<cfproperty name="parents" singularname="parent" fieldtype="one-to-many" cfc="nodeHierarchy" inverse="true" weight="weight" clearBeforeSave="true">
<cfproperty name="children" singularname="child" fieldtype="one-to-many" cfc="nodeHierarchy" inverse="true" orderby="weight asc">
<cfproperty name="node" fieldtype="many-to-one" cfc="node" fkcolumn="nid">
<cfproperty name="created" ormtype="timestamp" sqltype="timestamp">
<cfproperty name="updated" ormtype="timestamp" sqltype="timestamp">
</cfcomponent>
menu.cfc
<cfcomponent entityname="menu" output="false" persistent="true" table="menus" extends="node" joincolumn="node_id" discriminatorvalue="menu">
<cfproperty name="menuItems" singularname="menuItem" fieldtype="one-to-many" cfc="menuItem" inverse="true">
</cfcomponent>
menuItem.cfc
<cfcomponent entityname="menuItem" output="false" persistent="true" table="menus_items" extends="node" joincolumn="node_id" discriminatorvalue="menu_item">
<cfproperty name="menu" fieldtype="many-to-one" cfc="menu" fkcolumn="menu_id">
<cfproperty name="parentMenuItem" fieldtype="many-to-one" cfc="menuItem" fkcolumn="menu_item_id">
<cfproperty name="childMenuItems" fieldtype="one-to-many" cfc="menuItem" fkcolumn="menu_item_id">
<cfproperty name="node" fieldtype="one-to-one" cfc="com.cfc.app.models.node" fkcolumn="nid">
</cfcomponent>
你試過'EntityReload()'重新加載從數據庫中實體數據? –
是的,在刪除創建過程後,我嘗試了',它是一樣的。 –
Adysone