必要なことをするために 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
Listing
LEFT JOIN を ON ( . id
= ListingService
. listing_id
) ではなく ON ( Listing
. id
= ListingService
. id
)にしたいことを除いて、これはほとんど必要なものです。
「hasMany」を使用すると、LEFT JOIN も実行されません。
現在、ListingService.php モデルはありません。
啓蒙してください。
ありがとう、
ティー