0

必要なことをするために CakePHP を曲げようとしてもうまくいきません。

Listing と ListingService の 2 つのモデルがあります。

ListingService のフィールドは次のとおりです: id、title、listing_id、service_type_id (ある意味では、Listing との多くの関係に属しているようなものです)

私が今探しているとき。(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

ListingLEFT JOIN を ON ( . id= ListingService. listing_id) ではなく ON ( Listing. id= ListingService. id)にしたいことを除いて、これはほとんど必要なものです。

「hasMany」を使用すると、LEFT JOIN も実行されません。

現在、ListingService.php モデルはありません。

啓蒙してください。

ありがとう、
ティー

4

2 に答える 2

0

私はあなたの属していると思いますこのようにする必要があります

 public $belongsTo = array(
    'ListingService' => array(
         'className'  => 'ListingService',
         'foreignKey' => 'listing_id'
    )
 );
于 2013-09-11T16:50:43.287 に答える