getParent()和getChildren()會做什麼?這一切都與數據庫中的父子表關係有關嗎?如果是這樣,我應該在Zend_Model或Zend_Db_Table中將這些parent_type和parent_id放在哪裏?getparent和getChildren的功能
如何在控制器中調用getParent()/ getChildren()以及它們將返回什麼。
我可以使用表格關係的Zend常規約定。
回答
我已經想通了。我發現getParent(<itemType>)
和getChildren(<itemType>)
返回Core_Model_Item_Abstract
。但是,您必須分別在子女和父母表模型中設置$_parent_type
和$_children_types[array]
(不在_model_dbtable
中)。
您還必須在您的子表model(_Model_DbTable_)
中製作getChildrenSelectOfItemType($obj,$params = array()
,該表返回Zend_Db_Select
,您必須定義此選擇將返回的內容。
這裏的ItemType
表示moduleName_itemname
(例如album_photo)。
假設帳戶和錯誤具有1:n關係,因此以下必須位於MyModule_Model_DbTable_Bugs中。
public function getChildrenSelectOfMyModuleAccount($obj,$params = array())
{
$select = $this->select();
$select ->where('account_id = ?', $obj->getIdentity());
return $select;
}
}
然後你就可以得到相關的兒童通過(在你的控制器) $account=Engine_Api::_()->getItem('mymodule_account', 1); //1 = matching account_id
。
$bug=$account->getChildren('mymodule_bug'); //return Core_Model_Item_Abstract or row obj
獲取父錶行並不那麼複雜,在子表中聲明$_parent_type
,parent_id列必須存在於數據庫子表中 - 錯誤。
$bug=Engine_Api::_()->getItem('mymodule_bug', 1); //1 = bug_id $account=$bug->getParent();** //return Core_Model_Item_Abstract/row obj
(不要忘了把參考列(PARENT_ID)以dB爲單位的錯誤表ID匹配)
如果將 「$ _parent_is_owner =真」 在MyModule_Model_Bug(不宣$ _owner_type和$ _parent_type) ,用戶將成爲父母,因此的getParent將返回用戶知道
其中最重要的是
在socialengine方面主題,瀏覽器和業主
...
瀏覽器 =人誰是查看頁面(主要是在用戶登錄).e.g。 John是正在查看照片的登錄用戶 - 主題。
主題 =主題被查看者和/或查看者實際查看主題。例如如果用戶John查看專輯/照片,則專輯/照片是主題。
業主 =業主擁有一個項目/主題。例如約翰是他的照片的主人(一個主題)。如果約翰在查看傑裏的照片,主題是傑裏的照片,但所有者是傑瑞。
1)是的,他們的父子關係,但不是通過Zend的原生機制(_dependentTables,_referenceMap等)
你可以在這裏找到這些方法:抽象類Core_Model_Item_Abstract擴展Engine_Db_Table_Row實現Core_Model_Item_Interface (application/modules/Core/Model/Item/Abstract.php)
尋找方法參數,它們很重要。
2)通常它們用於檢索數據庫行/行。例如考慮Group_PhotoController :: editAction():
//獲取由ID(engine4_group_photos.photo_id)照片
$photo = Engine_Api::_()->core()->getSubject();
//通過GROUP_ID找到父(engine4_group_photos.group.id)
$group = $photo->getParent('group');
這裏我們得到了組行對象(Group_Model_Group)。
當然你可以覆蓋這些方法。 3)您可以嘗試一下,但這可能會很棘手,因爲SE在Zend框架代碼庫中做了很多改變。
- 1. 的getParent功能,即
- 2. IDXGIObject :: GetParent和Release
- 3. 的getParent在TabActivity
- 4. 的ProtocolException中的getChildren()
- 5. getApplicationContext(),getBaseContext(),getApplication()的getParent()
- 6. 的getParent()。setProgressBarIndeterminateVisibility錯誤
- 7. JPopupMenu getParent()返回null?
- 8. 何時使用getparent()
- 9. 學說 - getChildren()的條件?
- 10. Android的Childactivity getParent問題?
- 11. 和功能 - SharePoint功能
- 12. 功能()和新功能()
- 13. Vaadin 8.1 RC1 TreeDataProvider,TreeData(getParent),HierarchicalQuery
- 14. Python getparent()不起作用
- 15. getParent對象從Array/Knockout/mapping.Plugin
- 16. CWnd :: GetParent導致異常
- 17. 二叉樹getParent函數
- 18. JavaScript的內幕101:功能和功能
- 19. 創作的Java雙功能和功能
- 20. 的setInterval和功能
- 21. 的JavaFX的getChildren()列出行爲
- 22. Freemarker的2.3.19錯誤使用JDOM的getParent
- 23. wxWidgets 3.0 - 新功能和新功能,補充和替代已棄用的功能
- 24. 和λ功能
- 25. OpenMP和功能
- 26. 功能和PHP
- 27. PHP SPL RecursiveIterator :: getChildren()返回的是什麼?
- 28. 幫助的getParent()垂頭喪氣
- 29. 瞭解Java applet的getParent方法
- 30. 如何實現ContentProvider的getParent方法