Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP使用belongsTo关系保存所有问题_Cakephp_Cakephp 2.3 - Fatal编程技术网

CakePHP使用belongsTo关系保存所有问题

CakePHP使用belongsTo关系保存所有问题,cakephp,cakephp-2.3,Cakephp,Cakephp 2.3,我有模型TranslationSection、TranslationItem和TranslationContent class TranslationSection extends AppModel { public $belongsTo = array( 'TranslationCategory' ); public $hasMany = array( 'TranslationItem' ); }

我有模型TranslationSection、TranslationItem和TranslationContent

class TranslationSection extends AppModel {
    public $belongsTo = array(
            'TranslationCategory'
        );
    public $hasMany = array(
            'TranslationItem'
        );
}
class TranslationItem extends AppModel {
    public $hasMany = array(
            'TranslationContent'
        );
    public $hasOne = array(
            'TranslationSection'
        );
}
class TranslationContent extends AppModel {
    public $hasOne = array(
            'TranslationItem',
            'TranslationLanguage'
        );
}
我正在使用表单帮助器编辑TranslationContent,此表单将正确填充

<?php echo $this->Form->create('TranslationContents'); ?>
    <fieldset>
        <legend>Edit Contents for "<?= $this->request->data["TranslationSection"]["name"];?>"</legend>
        <?php 
        foreach($this->request->data["TranslationItem"] as $key => $item){
            echo '<h2>'.$item["caption"].'</h2>';
            $i = 0;
            foreach($translationsLanguages as $language_id => $language){
                echo '<h3>'.$language.'</h3>';
                echo $this->Form->input('TranslationItem.'.$key.'.TranslationContent.'.$i.'.content');
                echo $this->Form->input('TranslationItem.'.$key.'.TranslationContent.'.$i.'.id', array('type' => 'hidden'));
                echo $this->Form->input('TranslationItem.'.$key.'.TranslationContent.'.$i.'.translation_item_id', array('type' => 'hidden'));
                echo $this->Form->input('TranslationItem.'.$key.'.TranslationContent.'.$i.'.translation_language_id', array('type' => 'hidden'));
                $i ++;
            }

            echo $this->Form->input('TranslationItem.'.$key.'.id', array('type' => 'hidden'));
        }
        ?>
    </fieldset>
    <?php echo $this->Form->end(__('Submit')); ?>

你知道我哪里出错了吗?我认为结构是正确的,因为表单填充正确。

为什么
$this->TranslationItem->saveAll($this->request->data[“TranslationItem”])
而不是
$this->TranslationItem->saveAll($this->request->data))
?$this->TranslationItem->saveAll($this->request->data))返回false。没有在模型的字段上设置验证。有没有办法知道它为什么会出错?
<?php echo $this->Form->create('TranslationContents'); ?>
    <fieldset>
        <legend>Edit Contents for "<?= $this->request->data["TranslationSection"]["name"];?>"</legend>
        <?php 
        foreach($this->request->data["TranslationItem"] as $key => $item){
            echo '<h2>'.$item["caption"].'</h2>';
            $i = 0;
            foreach($translationsLanguages as $language_id => $language){
                echo '<h3>'.$language.'</h3>';
                echo $this->Form->input('TranslationItem.'.$key.'.TranslationContent.'.$i.'.content');
                echo $this->Form->input('TranslationItem.'.$key.'.TranslationContent.'.$i.'.id', array('type' => 'hidden'));
                echo $this->Form->input('TranslationItem.'.$key.'.TranslationContent.'.$i.'.translation_item_id', array('type' => 'hidden'));
                echo $this->Form->input('TranslationItem.'.$key.'.TranslationContent.'.$i.'.translation_language_id', array('type' => 'hidden'));
                $i ++;
            }

            echo $this->Form->input('TranslationItem.'.$key.'.id', array('type' => 'hidden'));
        }
        ?>
    </fieldset>
    <?php echo $this->Form->end(__('Submit')); ?>