【发布时间】:2015-06-15 09:27:21
【问题描述】:
我目前在使用 cakephp 时遇到了一些问题。 我已经尝试在这个论坛上找到答案,但在我的情况下没有什么真正有用的:( 这是我的问题:
我有 2 张桌子:
Author | Role
id | id
role_id | name
我将我的作者设置为“belongsTo Role”和我的角色“HasMany Author”
在我看来,我的表单如下所示:
$this->Form->create('Role')
$this->Form->input('name'));
$this->Form->input('Author.id', array('type' => 'select', 'multiple' => true, 'options' => $authors));
我的角色控制器:
function index() {
if (!empty($this->data)) {
if ($this->Role->saveAll($this->data)) {
}
}
$this->set('authors', $this->Role->Author->find('list'));
}
但是当我尝试保存时,我的新角色创建得很好,但它也创建了一个新的作者行,而不是更新现有的。 我想要的只是在创建新角色时从 Author 表中更新 role_id。 知道有什么问题吗?
编辑:我也得到相同的结果 $this->请求->数据 代替 $这个->数据 当我创建分配有 2 个作者的新角色时,我的数据如下所示:
array(
'Role' => array(
'name' => 'test',
),
'Author' => array(
'id' => array(
(int) 0 => '1',
(int) 1 => '3'
)
)
)
感谢您的帮助。
【问题讨论】:
-
您使用的是什么版本的 CakePHP?从您的代码看起来是 CakePHP 1.x?
-
@drmonkeyninja,Nop,2.2.3 版
-
您不应该在 CakePHP 2.x 的控制器中使用
$this->data(在 CakePHP 1.x 中就是这样做的),而应使用$this->request->data。发布表单数据后,$this->request->data的外观如何?你能用这个更新你的问题吗? -
刚刚编辑过,但请求没有变化->数据:(
-
您确定您发布的数据是您从视图表单中获得的数据吗?因为您的数据格式不正确,无法进行多次保存。从文档中,它说 hasmany 关联模型必须在没有模型键的情况下将其数据放在数字索引数组中
标签: cakephp cakephp-2.2