我没有运气试图让CakePHP去做我需要的事情。
我有2个模型,列表和& ListingService。
ListingService的字段如下:id,title,listing_id,service_type_id (所以在某种程度上它就像一个拥有并属于许多与列表的关系)
我现在正在寻找。 (在Listing.php中使用belongsTo)
public $belongsTo = array(
'ListingService' => array(
'className' => 'ListingService',
'foreignKey' => 'id'
)
);
$this->paginate = array('type' => 'all', 'recursive' => 0,
'fields' => array('Listing.id', 'Listing.title',
'ListingService.service_type_id','ListingService.title'),
'limit' => 10
);
这是显示
的查询SELECT `Listing`.`id`, `Listing`.`title`, `ListingService`.`service_type_id`, `ListingService`.`title` FROM `listings` AS `Listing` LEFT JOIN `listing_services` AS `ListingService` ON (`Listing`.`id` = `ListingService`.`id`) LIMIT 10
这几乎是我需要的,除了我希望LEFT JOIN打开(Listing
。id
= ListingService
。listing_id
)而不是ON( Listing
。id
= ListingService
。id
)
如果我使用“hasMany”,它甚至不会进行LEFT JOIN。
我目前没有ListingService.php模型。
请点亮。
谢谢你,
三通
答案 0 :(得分:0)
找到解决方案。
我需要先做这件事。
$this->Listing->ListingService->primaryKey = 'listing_id';
这是一个黑客吗?如果是的话,有没有更好的方法呢?
答案 1 :(得分:0)
我认为你的belongsTo应该是这样的
public $belongsTo = array(
'ListingService' => array(
'className' => 'ListingService',
'foreignKey' => 'listing_id'
)
);