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

时间:2017-08-30 05:47:19

标签: cakephp-3.0 has-many

我刚开始学习cakephp3,所以请原谅我有什么不妥。 所以我有一个名为Projects and Events的表,所以关系就像一个项目可以有很多事件。

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

testapp / projects / add - > testapp /活动/添加

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

请告诉我怎样才能实现这个目标?

提前致谢

1 个答案:

答案 0 :(得分:1)

在您ProjectsController的某个地方,你应该像

那样
redirect(['action' => 'add', 'controller' => 'Events'])

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

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

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

然后在你的EventsController中,您将读取该值并以此方式将其存储到Event实体

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