从 Joined 表中推进数据不可用

Propel data from Joined tables not available

我正在尝试在列表中显示相册的第一张图片。但是在创建查询时,我无法访问 foreach 循环中的 $album->getImageuri() 方法。

$albums = \ApAlbumQuery::create()
            ->join('ApAlbum.ApAlbumImage', \Propel\Runtime\ActiveQuery\Criteria::LEFT_JOIN)
            ->join('ApAlbumImage.ApImage', \Propel\Runtime\ActiveQuery\Criteria::LEFT_JOIN)
            ->where('ApAlbum.visibility is not null')
            ->groupBy('ApAlbum.Id')
            ->orderByStartdate("ASC")
            ->find();

foreach($albums as $album)
{
    echo $album->getImageuri(); // not working?
}

当 运行 使用 Propel ->toString() 方法创建的 sql 查询时,一切都存在。

有人知道我做错了什么吗?

尝试使用 ->withColumn() 添加 ImageURI 列:

$albums = \ApAlbumQuery::create()
        ->join('ApAlbum.ApAlbumImage', \Propel\Runtime\ActiveQuery\Criteria::LEFT_JOIN)
        ->join('ApAlbumImage.ApImage', \Propel\Runtime\ActiveQuery\Criteria::LEFT_JOIN)
        ->withColumn('ApAlbumImage.ApImage.ImageURI')
        ->where('ApAlbum.visibility is not null')
        ->groupBy('ApAlbum.Id')
        ->orderByStartdate("ASC")
        ->find();

foreach($albums as $album)
{
    echo $album->getImageuri(); // not working?
}

根据您的 ->join() 语法,我假设您使用的是不同的模式