情景
Provider
和Package
。 Provider
和Package
Provider::edit()
方法 设置
我有三种型号
Provider
FeaturedPackage
Package
模型
使用“HABTM Through”进行设置,不应与HABTM混淆。所以关系如下。
Provider
hasMany FeaturedPackage
FeaturedPackage
属于Provider
Package
有许多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 :(得分:0)
我在我的模型中使用数据按摩方法解决了这个问题,该方法是从控制器调用的。
这将通过并更新从表单提交的数组,以匹配保存所期望的内容。
我在博客上写了http://jedistirfry.co.uk/blog/2013-08/how-to-create-hasmanythrough-multi-selects/