一對一關聯
hasOne('關聯模型','外鍵','主鍵');
- 關聯模型(必須):關聯的模型名或者類名
- 外鍵:默認的外鍵規則是當前模型名(不含命名空間,下同)+
_id,例如user_id - 主鍵:當前模型主鍵,默認會自動獲取也可以指定傳入
一對多關聯
hasMany('關聯模型','外鍵','主鍵');
- 關聯模型(必須):模型名或者模型類名
- 外鍵:關聯模型外鍵,默認的外鍵名規則是當前模型名+
_id - 主鍵:當前模型主鍵,一般會自動獲取也可以指定傳入
遠程一對多
hasManyThrough('關聯模型','中間模型','外鍵','中間表關聯鍵','主鍵');
- 關聯模型(必須):模型名或者模型類名
- 中間模型(必須):模型名或者模型類名
- 外鍵:默認的外鍵名規則是當前模型名+
_id - 中間表關聯鍵:默認的中間表關聯鍵名的規則是中間模型名+
_id - 主鍵:當前模型主鍵,一般會自動獲取也可以指定傳入
多對多關聯
belongsToMany('關聯模型','中間表','外鍵','關聯鍵');
- 關聯模型(必須):模型名或者模型類名
- 中間表:默認規則是當前模型名+
_+關聯模型名 (可以指定模型名) - 外鍵:中間表的當前模型外鍵,默認的外鍵名規則是關聯模型名+
_id - 關聯鍵:中間表的當前模型關聯鍵名,默認規則是當前模型名+
_id
多態關聯
morphMany('關聯模型','多態字段','多態類型');
關聯模型(必須):關聯的模型名稱,可以使用模型名(如Comment)或者完整的命名空間模型名(如app\index\model\Comment)。
多態字段(可選):支持兩種方式定義 如果是字符串表示多態字段的前綴,多態字段使用 多態前綴_type和多態前綴_id,如果是數組,表示使用['多態類型字段名','多態ID字段名'],默認為當前的關聯方法名作為字段前綴。
多態類型(可選):當前模型對應的多態類型,默認為當前模型名,可以使用模型名(如Article)或者完整的命名空間模型名(如app\index\model\Article)。
morphTo('多態字段',['多態類型別名']);
多態字段(可選):支持兩種方式定義 如果是字符串表示多態字段的前綴,多態字段使用 多態前綴_type和多態前綴_id,如果是數組,表示使用['多態類型字段名','多態ID字段名'],默認為當前的關聯方法名作為字段前綴
多態類型別名(可選):數組方式定義
