PhalconPHP如何通过连接数据来调整findFirst

时间:2014-05-17 14:46:08

标签: php mysql frameworks phalcon

我有两张桌子:

AuctionPackage
$this->belongsTo('id', 'AuctionPackageTranslation', 'auction_package_id', NULL);

和另一个

AuctionPackageTranslation
$this->belongsTo('auction_package_id', 'AuctionPackage', 'id', NULL);

现在,当我做

$auction_order = AuctionOrder::findFirstByid($id);

我得到了所有正确的数据,在Volt中我可以访问翻译。但是,如果联接语言表中的一个字段具有ceratain值,我想使用findFirst而不是findFirstByid并执行一个条件。

像这样:

    $auction_package = AuctionPackage::findFirst(array(
            "auction_package_translation.lang_id = '{$lang}'",
            "id = {$id}"
        ));

我得到错误:

*Unknown model or alias 'auction_package_translation' (1), when preparing: SELECT [AuctionPackage].* FROM [AuctionPackage] WHERE auction_package_translation.lang_id = 'de' LIMIT ?1*

findFirst不加入表和findFirstByid吗?如何对连接表进行条件限制?

1 个答案:

答案 0 :(得分:0)

使用关系名称(类名)而不是表名。这是因为PHQL在构建查询时使用了类名。

$auction_package = AuctionPackage::findFirst(array(
    "AuctionPackageTranslation.lang_id = '{$lang}'",
    "id = {$id}"
));