TP5.1框架中的模型關聯


一對一關聯

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字段名'],默認為當前的關聯方法名作為字段前綴
多態類型別名(可選):數組方式定義


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM