我的模型CloudApp
与Policy
模型有HABTM关系,例如:
class CloudApp extends AppModel {
public $displayField = 'name';
public $hasAndBelongsToMany = array(
'Policy' => array(
'className' => 'Policy',
'joinTable' => 'cloudapp_policies',
'foreignKey' => 'cloud_app_id',
'associationForeignKey' => 'policy_id',
'unique' => 'keepExisting',
)
);
}
Policy
模型看起来像这样 -
class Policy extends AppModel {
public $belongsTo = 'CloudApp';
}
当我使用脚手架时,一切正常 - 我能够为我保存的CloudApp多选策略。
但是当我尝试手动保存数据时,Policy模型中的关联数据没有被保存。
这是我的add
控制器 -
public function add(){ $这 - > loadModel( '政策'); $ this-> set('policies',$ this-> Policy-> find('list',array( 'fields'=>阵列( 'Policy.name') )));
if ($this->request->is('post')) {
pr($this->request->data);
$this->CloudApp->saveAll($this->request->data); }
}
add.ctp看起来像这样 -
echo $this->Form->create('CloudApp');
?>
<fieldset>
<legend><?php echo __('Add Application'); ?></legend>
<?php
echo $this->Form->input('name');
echo $this->Form->input('policies', array(
'multiple' => true
));
?>
</fieldset>
<?php echo $this->Form->end(__('Submit')); ?>
pr($this->request->data);
的输出是 -
Array
(
[CloudApp] => Array
(
[name] => 123
[policies] => Array
(
[0] => 18
[1] => 19
[2] => 20
)
)
)
我做错了什么?