现在,如果我试图在phpactiverecord中快速加载两个以上的对象,我会得到一个错误。
是这样的:
$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‘,只是为了让修复变得非常明显。
发布于 2012-07-23 22:03:40
我自己修复了这个问题,将execute_eager_load中Table.php的第247行从
if (is_array($name))
{
$nested_includes = count($name) > 1 ? $name : $name[0];//<-- this line
$name = $index;
}至
if (is_array($name))
{
$nested_includes = count($name) > 0 ? $name : $name[0];
$name = $index;
}发布于 2012-04-03 22:29:22
这应该是可行的。我刚刚用自己的代码测试了一个例子:
$model = MyItem::find('first',array('include' => array('Group' => array('SomeGroupFeature'))));我能想到的唯一一件事是,你在其中一件事上没有任何结果,或者你的条件包含了以前使用该数组的其他东西?
https://stackoverflow.com/questions/9983803
复制相似问题