国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

orm2 中文文檔 4.2 hasMany(多對多關(guān)系)

Chaz / 1098人閱讀

摘要:譯者飛龍來源是多對多的關(guān)系包括連接表。每個醫(yī)生可以擁有許多不同的病人。如果為,關(guān)聯(lián)將會自動被獲取。默認(rèn)為由于歷史原因。如果為,表中外鍵的列會形成一個組合鍵。允許重命名關(guān)聯(lián)訪問器。

譯者:飛龍

來源:hasMany

hasMany

是多對多的關(guān)系(包括連接表)。

例如:Patient.hasMany("doctors", Doctor, { why: String }, { reverse: "patients", key: true })

病人可以擁有許多不同的醫(yī)生。每個醫(yī)生可以擁有許多不同的病人。

當(dāng)你調(diào)用Patient.sync()時,會創(chuàng)建一個連接表patient_doctors

列名稱 類型
patient_id Integer
doctor_id Integer
why varchar(255)

下列函數(shù)是可用的:

// 獲取所有關(guān)聯(lián)醫(yī)生的列表
patient.getDoctors(function(err, doctors) {
  // ...
});

// 向連接表中增加記錄
patient.addDoctors([phil, bob], function(err) {
  // ...
});

// 移除連接表中的現(xiàn)有記錄,并增加新的
patient.setDoctors([phil, nephewOfBob], function(err) {
  // ...
});

// 檢查是否某個病人關(guān)聯(lián)了指定的醫(yī)生
patient.hasDoctors([bob], function(err, patientHasBobAsADoctor) {
  // because that is a totally legit and descriptive variable name
  if (patientHasBobAsADoctor) {
    // ...
  } else {
    // ...
  }
});

// 從連接表中移除指定記錄
patient.removeDoctors([bob], function(err) {
  // ...
});

// 并且所有醫(yī)生都有自己的方法來獲取病人
bob.getPatients(function(err, patients) {
  if (patients.indexOf(you) !== -1) {
    // woot!
  } else {
    // ...
  }
});

// 以及其他

要把醫(yī)生關(guān)聯(lián)到病人:

patient.addDoctor(surgeon, {why: "remove appendix"}, function(err) {
  // ...
});

// or...
surgeon.addPatient(patient, {why: "remove appendix"}, function(err) {
  // ...
});

這樣會添加{patient_id: 4, doctor_id: 6, why: "remove appendix"}到連接表中。

API
Model.hasMany(
  name,       // String. 關(guān)聯(lián)名稱
  otherModel, // Model. 要關(guān)聯(lián)的模型
  extraProps, // Object. 在連接表上出現(xiàn)的額外屬性
  opts        // Object. 關(guān)聯(lián)的選項
);
選項
選項名稱 類型 描述
autoFetch Boolean 默認(rèn)為false。如果為true,關(guān)聯(lián)將會自動被獲取。
autoFetchLimit Number 默認(rèn)為1。自動獲取的深度。
key Boolean 默認(rèn)為false(由于歷史原因)。如果為true,表中外鍵的列會形成一個組合鍵。
mergeTable String 連接表的自定義名稱
mergeId String 代表當(dāng)前模型那一列的自定義名稱
mergeAssocId String 代表另一個模型那一列的自定義名稱
reverse String 默認(rèn)為false。如果為true,關(guān)聯(lián)可以通過另一個模型使用指定方法獲取到。
getAccessor String 默認(rèn)為"get" + Name。允許重命名關(guān)聯(lián)訪問器。
setAccessor String 默認(rèn)為"set" + Name。允許重命名關(guān)聯(lián)訪問器。
hasAccessor String 默認(rèn)為"has" + Name。允許重命名關(guān)聯(lián)訪問器。
delAccessor String 默認(rèn)為"del" + Name。允許重命名關(guān)聯(lián)訪問器。
addAccessor String 默認(rèn)為"add" + Name。允許重命名關(guān)聯(lián)訪問器。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/17503.html

相關(guān)文章

  • orm2 中文文檔 4. 定義關(guān)聯(lián)

    摘要:譯者飛龍來源關(guān)聯(lián)是一個或多個模型之間的關(guān)系。關(guān)聯(lián)的類型一對多多對多一對一 譯者:飛龍 來源:Defining Associations 關(guān)聯(lián)是一個或多個模型之間的關(guān)系。 關(guān)聯(lián)的類型: hasOne(一對多) hasMany(多對多) extendsTo(一對一)

    URLOS 評論0 收藏0
  • Yii2中hasOne、hasMany以及對多關(guān)聯(lián)查詢的用法

    摘要:前言是特有的用于多表關(guān)聯(lián)查詢的函數(shù),平時在使用多表關(guān)聯(lián)查詢的時候建議使用它們。需求分析使用一條查詢語句就能把列表的數(shù)據(jù)全部展現(xiàn)出來,列表包含一對一,一對多,以及多對多的關(guān)系。不能破壞自有的表頭排序功能,以及中的存值。相關(guān)資料中多表關(guān)聯(lián)查詢 前言 hasOne、hasMany是Yii2特有的用于多表關(guān)聯(lián)查詢的函數(shù),平時在使用多表關(guān)聯(lián)查詢的時候建議使用它們。為什么?因為這種方式關(guān)聯(lián)查詢出來...

    qc1iu 評論0 收藏0
  • Yii2中hasOne、hasMany以及對多關(guān)聯(lián)查詢的用法

    摘要:前言是特有的用于多表關(guān)聯(lián)查詢的函數(shù),平時在使用多表關(guān)聯(lián)查詢的時候建議使用它們。需求分析使用一條查詢語句就能把列表的數(shù)據(jù)全部展現(xiàn)出來,列表包含一對一,一對多,以及多對多的關(guān)系。不能破壞自有的表頭排序功能,以及中的存值。相關(guān)資料中多表關(guān)聯(lián)查詢 前言 hasOne、hasMany是Yii2特有的用于多表關(guān)聯(lián)查詢的函數(shù),平時在使用多表關(guān)聯(lián)查詢的時候建議使用它們。為什么?因為這種方式關(guān)聯(lián)查詢出來...

    lmxdawn 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<