在使用多个select处理表单后,saveAll不会在cakephp 2.0中保存关联数据

在使用多个select处理表单后,saveAll不会在cakephp 2.0中保存关联数据,php,cakephp,cakephp-2.0,Php,Cakephp,Cakephp 2.0,我有一个模型,和另一个模型有很多关系 单字段数据保存到主模型,下拉选择输入的数据应保存到关联模型 当我试图手动创建一个数组并使用saveAll时,一切正常,数据也保存了下来。但是select输入的问题在其名称内。正确的格式是: array( 'Article' => array('title' => 'My first article'), 'Comment' => array( array('body' => 'Comment 1', '

我有一个模型,和另一个模型有很多关系

单字段数据保存到主模型,下拉选择输入的数据应保存到关联模型

当我试图手动创建一个数组并使用saveAll时,一切正常,数据也保存了下来。但是select输入的问题在其名称内。正确的格式是:

array(
    'Article' => array('title' => 'My first article'),
    'Comment' => array(
        array('body' => 'Comment 1', 'user_id' => 1),
        array('body' => 'Comment 2', 'user_id' => 12),
        array('body' => 'Comment 3', 'user_id' => 40),
    ),
)
创建选择列表并传递选项数组时,我们只能设置一个标记名,如Comment.body,但必须使用Comment.0.body、Comment.1.body等

因此,无法读取post数据的格式,Cake无法成功使用saveAll


是否有人遇到过这个问题-使用正确的名称和值生成多个select输入

您是如何生成表单的?正确的格式是你说的第二个,Comment.0.body。为此,您需要以下内容:

echo $this->Form->input('Comment.0.body');
echo $this->Form->input('Comment.1.body');
将产生:

<input type='text' id='Comment0Body' name="data[Comment][0][body]" />
<input type='text' id='Comment1Body' name="data[Comment][1][body]" />

该问题通过切换到$HasandBelongToMany关系解决。

你好,Paulo,谢谢,但如果我有20个相关元素,那么我有一个多下拉选择标记,问题是我们使用$this->Form->select'Model.field',$options设置了一次选择的输入名称