Thinkphph 使用RelationModel的三表關聯查詢機制
有如下三個表
a表 b表 c表
id bid other id cid other id other
a表的bid關聯b表的id,b表的cid關聯c表的id
現在需要查詢a表的時候順帶把b表和c表的相關信息也查詢出來
很多人一開始就想到使用原生的sql語句
select * from a left join b on a.bid=b.id left join c on b.cid=c.id;
但這并不是我想要的!
直接給出使用案例
class AModel extends RelationModel
{
protected $_link = array(
'B'=>array(
'class_name' => 'B',
'mapping_type' => self::BELONGS_TO,
'mapping_name' => 'b',
'foreign_key' => 'bid',//關聯id
),
//c表要間接關聯b表
'C' => array(
'class_name' => 'C',
'mapping_type' => self::MANY_TO_MANY,
'mapping_name' => 'c',
'mapping_key' => 'bid', // a.bid, a表要關聯b表的字段
'foreign_key' => 'id', // c.id
'relation_foreign_key' => 'cid', // b.cid b表要關聯c表的字段
'relation_table' => '__B__', //b表,雙下劃線加大寫,會自動轉換統一格式的表,如果多個大寫例如BFModel,寫成__B_F__中間需要用一個下劃線隔開
),
);


浙公網安備 33010602011771號