cakephp - 从父控制器创建新的 hasMany 孩子
问题描述
我有两个控制器“事件”和“活动”,并且都有很多“与会者”。
$this->hasMany('Attendees')
->setClassName('Attendees')
->setForeignKey('foreign_id')
->setConditions(array('Attendees.class' => 'Activity'))
->setDependent(true);
我在我的参加者表中使用一个类和一个 foreign_id 来链接它们。我想在我的 ActivitiesController 中创建 addAttendee() 函数,例如添加一个新的与会者,但我不知道如何继续。
public function addAttendee($id = null)
{
$activity = $this->Activities->get($id, ['contain' => ['Venues', 'Contacts']]);
if ($this->request->is('post'))
{
??
}
$this->set(compact('activity'));
}
我找到了一些关于保存关联但没有创建新关联的文档。
解决方案
您可以创建一个新Attendee
实体,然后将其链接到您的$activity
.
$data = ['first_name' => 'blah', 'last_name' => ... fields]);
$attendee = $this->Attendee->newEntity($data);
$this->Attendee->link($activity, [$attendee]);
来源:https://api.cakephp.org/4.2/class-Cake.ORM.Association.HasMany.html#link()
推荐阅读
- php - 原因:“未捕获的错误:在 null 上调用成员函数 is_empty()”
- java-8 - 不存在变量 R 的实例,因此 void 符合 R
- google-cloud-platform - GCP Compute Engine 免费试用:e2-medium
- sql - 我需要帮助重写 2 个数据库查询,这些查询最初是用名为 squeel 的 gem 编写的
- java - Spring Boot - 如何在拦截器中清理路径变量
- html - 为什么不使用 h2 元素发布“粘性”?
- c# - 注入 MongoDB 聚合管道的枚举未在 C# 中序列化为字符串
- laravel - Laravel:使用带有偏移和限制的惰性似乎不起作用
- python - 按计划重启 ElasticBeanstalk 应用服务器
- python - 为语义分割做准备的 ImageDataGenerator 数据