如何在cakephp3的子控制器中传递父id的值

How to pass value of parent id in child controller in cakephp3

刚开始学习cakephp3,有什么不对的地方还请见谅。 所以我有一个 table 叫做项目和事件,所以它们之间的关系就像一个项目可以有很多事件。

当用户添加新项目时,他将被重定向到 Controller 'events ' 中的 'add' 事件。

testapp/projects/add --> testapp/events/add

默认 add.ctp 中的代码有一个项目下拉列表,但我希望它是普通文本字段,其值是刚刚创建的项目而不是下拉列表。

请告诉我怎样才能做到这一点?

提前致谢

在你的 ProjectsController 的某个地方你应该有类似

的东西
redirect(['action' => 'add', 'controller' => 'Events'])

你应该有一个名为 $project 的变量存储一个 ProjectEntity

只需将项目 ID 传递给重定向操作

redirect(['action' => 'add', 'controller' => 'Events', $project->id])

然后在您的 EventsController 中,您将读取该值并以这种方式将其存储到事件实体中

function add($project_id)
{
    // Do something
    $event = $this->Events->newEntity();
    $event->project_id = $project_id; 
    // do something else
}