从连接表中推出数据不可用

时间:2015-05-11 11:56:43

标签: php mysql propel

我试图在列表中显示imagealbum的第一张图片。但是在创建查询时,我无法访问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创建的sql-query时,> toString()方法一切都存在。

有人知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

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

$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()语法,我假设您使用的是不同的架构