【发布时间】:2014-09-11 00:40:54
【问题描述】:
我有几个表像树一样连接(hasMany):1 -> 2 -> 3。 表一、表二、三的记录很少。
我正在使用 CakePHP 从表 1 中获取所有数据,表 2 与表 2 相连,表 2 与表 3 相连。 但是表1中很少有记录在表2中没有连接记录。在表2中也是如此,有些记录在表3中没有连接记录。
对于第二种情况,脚本可以正常工作。我得到这样的东西: 1 -> 2 -> 空。但在第一种情况下,当数据看起来类似于: 1-> empty -> empty 我得到表 3 不存在的错误。
是否有任何解决方案可以跳过此错误并获得格式精美的关联表作为对我的查询的返回?
$options = array(
'conditions' => array(
'Table1.id' => $table1_ids
),
'contain' => array(
'Table2' => array(
'conditions' => array(
'id' => $table2_ids
),
'Table3' => array(
'conditions' => array(
'date_end >' => date('Y-m-d H:i:s')
),
'fields' => array('id'),
),
'fields' => array()
),
),
'fields' => array('id', 'name')
);
$this->Table1->recursive = -1;
$table1 = $this->Table1->find('all', $options);
【问题讨论】:
-
如果不查看实际执行脚本的代码就很难知道。
-
您是如何获得这些记录的?可以分享一下代码吗?
-
我已经添加了代码。对此的解决方案可能是针对表 2 中的每条记录,我应该检索表 3 中的记录。然而,这意味着对数据库的大量查询......
-
奇怪的是,即使对于表 1 中的某些记录,其中 Table1 -> empty -> empty,它仍然可以正常工作。我无法理解 CakePHP。对于小型应用程序来说,这是一个很好的框架,但对于更高级的应用程序,它就跟不上。
-
我得到 Table3 不存在的数据库错误(?!)。我不知道为什么...
标签: cakephp associations nested-queries