首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >phpactiverecord中的三层关联

phpactiverecord中的三层关联
EN

Stack Overflow用户
提问于 2012-04-03 05:04:14
回答 2查看 627关注 0票数 0

现在,如果我试图在phpactiverecord中快速加载两个以上的对象,我会得到一个错误。

是这样的:

代码语言:javascript
复制
$conditions['include'] = array( 'playlists' => array('playlist_songs' =>array('song')));
User::find('first', $conditions);

只是尝试检索的级别太多了?每当我尝试使用3级深度的关联时,我都会得到一个错误的Undefined offset: 0。感谢您的帮助或见解:D。

编辑:

所以我发现了一个有点奇怪的模式。如果我有array('playlist_songs'=>array('song'=>array('album')));,那么急切的负载将会为我而崩溃。但是如果我将另一个关联添加到数组中,它就可以正常工作。array('playlist_songs'=>array('song','song','song','song'=>array('album')));

我在该数组中多次使用'song‘,只是为了让修复变得非常明显。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-23 22:03:40

我自己修复了这个问题,将execute_eager_load中Table.php的第247行从

代码语言:javascript
复制
if (is_array($name))
{
            $nested_includes = count($name) > 1 ? $name : $name[0];//<-- this line
            $name = $index;
}

代码语言:javascript
复制
if (is_array($name))
{
            $nested_includes = count($name) > 0 ? $name : $name[0];
            $name = $index;
}
票数 1
EN

Stack Overflow用户

发布于 2012-04-03 22:29:22

这应该是可行的。我刚刚用自己的代码测试了一个例子:

代码语言:javascript
复制
$model = MyItem::find('first',array('include' => array('Group' => array('SomeGroupFeature'))));

我能想到的唯一一件事是,你在其中一件事上没有任何结果,或者你的条件包含了以前使用该数组的其他东西?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9983803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档