2013-07-17 25 views
0

方案用的hasMany和多選

  • 工作,我有ProviderPackage
  • 供應商可以有許多特色軟件包。
  • 所以我們需要ProviderPackage
  • 我想用Provider::edit()方法

設置
我有三種模式功能包中的所有供應商保存在一杆之間的HABTM。
ProviderFeaturedPackage Package

模型

這些是使用 'HABTM Through',這不應與HABTM混淆設置。所以關係如下。

Provider的hasMany FeaturedPackage
FeaturedPackage屬於關聯Provider
Package的hasMany FeaturedPackage
FeaturedPackage屬於關聯Package

控制器

public function admin_edit($id) { 
    if ($this->request->is('post') || $this->request->is('put')) { 
     if ($this->Provider->saveAll($this->request->data)) { 
// snip 

查看

echo $this->Form->input('FeaturedPackages', array('type' => 'select', 'multiple' => true, 'options' => $packages)); 

問題
我不知道如何從關係的一側保存hasMany記錄多個變量的數字。通過閱讀本書,我知道預期的數據數組應該在模型下面進行數字索引。

但是,我不知道什麼來命名我的領域,以正確的數據格式。

我無法烤視圖,因爲它似乎忽略了hasMany甚至沒有爲它添加一個字段。

字段名我已經試過
FeaturedPackage
FeaturedPackage.FeaturedPackage
FeaturedPackage.package_id
FeaturedPackage..package_id
FeaturedPackage。[]。package_id與
FeaturedPackage.package_id] [

回答

0

我已經在我的模型中使用數據按摩方法解決了這個問題,該方法從控制器調用。

這會通過並更新從表單提交的數組以匹配保存期望的數組。

我的博客我的解決方案,http://jedistirfry.co.uk/blog/2013-08/how-to-create-hasmanythrough-multi-selects/

+0

親愛的Downvoter。請你可以留下評論,解釋爲什麼你低估了,這樣我就可以改進我的答案。愛和擁抱。 –