cakephp3中的递归?
Posted
技术标签:
【中文标题】cakephp3中的递归?【英文标题】:Recursive in cakephp3? 【发布时间】:2015-10-08 12:32:04 【问题描述】:这是我的表格关联代码:
class UserMastersTable extends Table
public function initialize(array $config)
parent::initialize($config);
$this->table('user_masters');
$this->hasOne('person_masters', [
'className' => 'person_masters',
'foreign_key'=>'user_master_id',
'dependent' => true
]);
当我在控制器中使用时: $this->UserMasters->get($id); 它只产生 user_masters 表数据.. 那么我怎样才能获得关联表数据呢?
【问题讨论】:
【参考方案1】:使用包含()
从手册中复制粘贴:
当你想加载主模型时,你应该使用 contains(),并且 其相关数据。而 contains() 将让您应用额外的 加载关联的条件,您不能约束 基于关联的主要模型。有关更多详细信息 contains(),看看 Eager Loading Associations。
// In a controller or table method.
// As an option to find()
$query = $articles->find('all', ['contain' => ['Authors', 'Comments']]);
// As a method on the query object
$query = $articles->find('all');
$query->contain(['Authors', 'Comments']);
Read the manual 在开始尝试和错误驱动的开发之前! 如果您在此之前完成了手册中的教程之一,那就很清楚了。所以现在就去做,它们会涵盖更多的基础知识。
【讨论】:
对于检索关联数据,每次在查询中使用“包含”?有没有什么方法可以让我们在每次不使用“包含”的情况下检索关联数据?我们可以在 Model 中全局定义它吗?? Recursive 已被删除,因为一直包含 assoc 是不好的做法。它们应该仅在真正需要时包含。但是,您可以在 beforeFind() 回调中添加疯狂,请参阅 -> book.cakephp.org/3.0/en/orm/table-objects.html#beforefind 您介意将答案标记为正确吗?谢谢。以上是关于cakephp3中的递归?的主要内容,如果未能解决你的问题,请参考以下文章
markdown [cakephp:CakePHP3注意事项] CakePHP3基本知识说明。 #cakephp