Datamapperを使用していて、結果セットの関連テーブル(1:1の関係)のすべての列を結合したいと考えています。したがって、私のコードは次のようになります。
$p = new Project();
$arrAll = $p->where("id <", 100)->where_related('outboundform', 'reference_type', 'project')->include_related('outboundform')->get()->all_to_array();
print_r($arrAll);
クエリは機能しますが、テーブル'outboundform'の列が結果に表示されず、完全に無視されます!! チェックしたところ、生成されたSQLは次のようになりました。
SELECT `project` . * , `outboundform`.`id` AS outboundform_id, `outboundform`.`reference_type` AS outboundform_reference_type, `outboundform`.`reference_id` AS outboundform_reference_id, `outboundform`.`created` AS outboundform_created, `outboundform`.`updated` AS outboundform_updated, `outboundform`.`v1` AS outboundform_v1, `outboundform`.`v2` AS outboundform_v2, `outboundform`.`v3` AS outboundform_v3, `outboundform`.`v4` AS outboundform_v4, `outboundform`.`v5` AS outboundform_v5 FROM (`project`) LEFT OUTER JOIN `outboundform` outboundform ON `project`.`id` = `outboundform`.`reference_id` WHERE `project`.`id` <100 AND `outboundform`.`reference_type` = 'project' LIMIT 0 , 30
これはOKで、実行すると正しい結果が得られます。ここでのDatamappersの問題は何ですか?全量の列が返されないのはなぜですか?