Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ORM中的加载关系问题_Php_Mysql_Orm_Doctrine - Fatal编程技术网

Php ORM中的加载关系问题

Php ORM中的加载关系问题,php,mysql,orm,doctrine,Php,Mysql,Orm,Doctrine,我正在使用PHP的ORM,我有一个关于加载关系的问题。一个模型似乎根据它的加载方式加载了一组不同的关系,有人知道解决这个问题的方法吗 这可能有点令人困惑。这里有一个例子。假设我们有模型A和模型B,具有多对多关系-A有一个或多个B。在我的数据集中有一个A记录A1,它与两个B记录B1和B2相关 有两种方法可以加载A记录,但在这两种情况下,我都希望能够使用$myModelA->B获取所有相关的B记录 第一种情况是直接加载A1。所以我选择$myModelA=A_Table->findA1,简单。然后,当

我正在使用PHP的ORM,我有一个关于加载关系的问题。一个模型似乎根据它的加载方式加载了一组不同的关系,有人知道解决这个问题的方法吗

这可能有点令人困惑。这里有一个例子。假设我们有模型A和模型B,具有多对多关系-A有一个或多个B。在我的数据集中有一个A记录A1,它与两个B记录B1和B2相关

有两种方法可以加载A记录,但在这两种情况下,我都希望能够使用$myModelA->B获取所有相关的B记录

第一种情况是直接加载A1。所以我选择$myModelA=A_Table->findA1,简单。然后,当我转到$myModelA->B时,我将能够同时看到B1和B2。这是意料之中的

第二种情况导致了问题。我想找到所有与B2相关的A记录。因此,我创建了一个Doctrine_查询,并在a和B之间进行连接,并指定我想要一个与B2相关的记录。现在我想浏览我的A记录列表,其中一个是A1。因此,由于我在$myModelA中使用了A1模型,与第一个场景中相同,我希望当我转到$myModelA->B时,可以同时看到B1和B2

但事实并非如此。我只看到B2。我认为这是因为我用来检索A1的查询首先只需要B2相关的记录,所以当我沿着关系返回到另一个方向时,条件不知何故仍然存在,因此我只能得到B2

问题是……如何强制场景2中的模型忽略前面的查询并将所有相关记录加载到该模型

谢谢

我认为您可以对A调用refresh。请确保使用true作为参数调用它,以便刷新您的关系

$A1->refresh(true);

您是否可以提供一些与以下形式类似的文档化代码:?