CakePHP - 使用除id之外的关联查找Model

时间:2013-04-26 23:20:10

标签: cakephp

我没有运气试图让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打开(Listingid = ListingServicelisting_id)而不是ON( Listingid = ListingServiceid

如果我使用“hasMany”,它甚至不会进行LEFT JOIN。

我目前没有ListingService.php模型。

请点亮。

谢谢你,
三通

2 个答案:

答案 0 :(得分:0)

找到解决方案。

我需要先做这件事。

$this->Listing->ListingService->primaryKey = 'listing_id';

这是一个黑客吗?如果是的话,有没有更好的方法呢?

答案 1 :(得分:0)

我认为你的belongsTo应该是这样的

 public $belongsTo = array(
    'ListingService' => array(
         'className'  => 'ListingService',
         'foreignKey' => 'listing_id'
    )
 );