"记录未在表中找到主键[NULL]" cakephp 3关联形式中的错误

时间:2015-04-08 05:37:02

标签: cakephp cakephp-3.0

我坚持如何通过父表单保存BelongsToMany / Through关联。

我有一个通过ProjectCharacters属于ToMany角色的ProjectsTable。 我有一个通过ProjectCharacters属于ToMany Projects的CharactersTable。

我的项目/编辑/#页面包含常规项目/编辑表单后的第二个表单,如下所示:

    <?= $this->Form->create($project_character); ?>
    <?php
        echo $this->Form->input('character_id', ['options' => $character_options]);
        echo $this->Form->hidden('project_id', ['value' => $project['id']]);
    ?>
    <?= $this->Form->button(__('Add Character')) ?>
    <?= $this->Form->end() ?>

这只是我想在ProjectCharacters中创建新记录的项目ID和字符ID。但是当我按下保存时,我收到以下错误:

 Record not found in table "projects" with primary key [NULL] 

通过此表单保存ProjectCharacter关联需要做什么?

1 个答案:

答案 0 :(得分:1)

我会说你的问题在这里:

https://gist.github.com/sarahkeefe/a42d39efade836a675c8#file-projectscontroller-php-L156

您正在尝试验证项目的所有权以获取未接收任何参数的操作(添加功能)。您需要有条件地执行该代码,或始终允许对您的用户执行add()操作。

将来,您可以查看错误页面,它有一个堆栈跟踪,这是在错误发生之前调用的函数列表。它们通常表示可以找到错误的位置。