我有两个表:
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?我该如何限制某些东西加入桌子?
最佳答案
使用关系名称(类名称)而不是表名称。这是因为PHQL在构建查询时使用类名。
$auction_package = AuctionPackage::findFirst(array(
"AuctionPackageTranslation.lang_id = '{$lang}'",
"id = {$id}"
));