【问题标题】:PhalconPHP how to condition findFirst by join dataPhalconPHP如何通过连接数据来条件findFirst
【发布时间】:2014-05-17 14:46:07
【问题描述】:

我有两张桌子:

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

还有一个

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

现在,当我这样做时

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

我得到了所有正确的数据,并且在 Volt 中我可以访问翻译。但是,我想使用 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 吗?如何调整连接表的条件?

【问题讨论】:

    标签: php mysql frameworks phalcon


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      • 2018-04-02
      相关资源
      最近更新 更多