gpt4 book ai didi

php - 加入查询仅从一个表 cakephp 3 检索数据

转载 作者:行者123 更新时间:2023-11-30 23:52:30 27 4
gpt4 key购买 nike

我是 cakephp 的新手。我使用查询生成器使用加入 cakephp 查询生成器从两个表中获取详细信息。但是我正在编写的查询仅从一个表中获取详细信息。也需要帮助从其他表中获取数据。

这是我通过连接两个表来获取数据的代码:

public function edit($id = null) {

$events_table = TableRegistry::get('Events');

$events = $events_table->find('all')
->hydrate(false)
->join([
'CourseType'=> [
'table' => 'coursetype',
'type' => 'LEFT',
'conditions' => 'Events.type = CourseType.coursetype_id',
]
])->where(['Events.id' => $id]);

$event = $events->toArray();
$this->set('event', $event);
}

因此,我只能从事件表中获取详细信息。但我也需要来自 coursetype 的数据。感谢任何帮助。谢谢。

最佳答案

手动添加联接不会导致选择任何其他数据,您必须通过 select() 指定要选择的字段来自行完成此操作方法。

$events = $events_table
->find('all')
->hydrate(false)
->select($events_table)
// either add the fields one by one, or pass a table object
// as above to select all fields of the table
->select(['CourseType.id', 'CourseType.xyz', /* ... */])
// ...

我建议改用 use containments,即设置所需的关联(如果不存在的话),然后简单地使用 contain() :

$events = $events_table
->find('all')
->hydrate(false)
->contain('CourseType')
->where(['Events.id' => $id]);

另见

关于php - 加入查询仅从一个表 cakephp 3 检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45368946/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com