2012-03-10 49 views
3

我運行CakePHP的2.0.2,我有以下關係的hasMany「通過」關係和多選的形式

Category hasMany CategoryWork 
    Work hasMany CategoryWork 
    CategoryWork belongs to Category,Work 

一個經典的hasMany通過每個蛋糕的文檔的關係。

我有一個工作添加/編輯窗體與選擇框,允許用戶選擇多個類別。我遇到的問題是,當用戶編輯現有的作品時,關聯的類別沒有預選。

我有以下代碼來填充選擇框,這是實際可行的:

$categoryWorks = $this->CategoryWork->Category->listCategories(); 
$this->set(compact('categoryWorks')); 

然後我輸入域看起來是這樣的:

<?= $this->Form->input('CategoryWork', array('multiple' => true, 'label' => 'Categories')); ?> 

這將填充選擇欄,但它不會用工作的關聯類別預先選擇它。

所以,我可以解決這個問題。我只是向輸入呼叫提供選定的選項,並獲得預選的類別。但我期待cakephp對我來說更神奇:)

我的理論是,蛋糕正在查看從工作查詢返回的CategoryWork行的id,並且它不匹配填充在分類中的Categories的id落下。它需要看看category_id。

有關這方面的想法?我覺得我幾乎在那裏,我只是想念一些事情來幫助蛋糕做它的事情。

在此先感謝!

回答

0

您是否檢查過hasAndBelongsToMany關係?

基本上它是這樣工作的:Category hasAndBelongsToMany使用CategoryWork工作