91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在CakePHP框架中使用Model關聯對象

發布時間:2021-04-02 17:07:34 來源:億速云 閱讀:196 作者:Leah 欄目:開發技術

本篇文章為大家展示了如何在CakePHP框架中使用Model關聯對象,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

CakePHP 提供關聯數據表間的映射,共有4種類型的關聯:

hasOne,hasMany,belongTo,hasAndBelongsToMany.

設定了Model間的關聯關系定義,CakePHP就會將基于關系數據庫的數據映射為基于對象的關系模型。

但是你應該確保遵循CakePHP的命名規則.

命名規則中需要考慮的3個內容是,外鍵,model名字,表名.

外鍵:單數形式的 modelName_id
表名:復數形式的 model名
Model名:駝峰法命名單數形式(見文件inflector.php).

hasOne 關聯的定義與查詢:通過在model中增加一個array來實現.

class User extends AppModel
{
  var $name = 'User';
  var $hasOne = array(
    'UserInfos' => array(
      'className' => 'UserInfos',
      'conditions' => '',
      'order'=> '',
      'dependent' => true,
      'foreignKey' => 'user_id'
    )
  );
}

$hasOne 變量是一個array,CakePHP 通過該變量來構建 Blog 與 User 之間的關聯。

className: 關聯對象的類名。
conditions: 關聯對象的選擇條件。
order: 關聯對象的排列方式。
dependent: 這是個布爾值,如果為 true,父對象刪除時會級聯刪除關聯子對象。
foreignKey: 指向關聯 Model 的外鍵字段名,僅在不遵循 Cake 的命名約定時需要設置。

belongsTo 關聯的定義與使用

class Blog extends AppModel
{
  var $name = 'Blog';
  var $belongsTo = array(
    'User' => array(
      'className' => 'User',
      'conditions' => '',
      'order' => '',
      'foreignKey' => 'user_id'
    )
  );
}

className: 關聯對象的類名。
conditions: SQL 條件子句以限定關聯的對象。
order: 關聯對象的排序子句。
foreignKey: 關聯對象所對應的外鍵字段名。

hasMany 關聯的定義與查詢

class User extends AppModel
{
  var $name = 'User';
  var $hasMany = array(
    'Blog' => array(
      'className' => 'Blog',
      'conditions' => 'Blog.status = 1',
      'order' => 'Blog.created DESC',
      'limit' => '5',
      'foreignKey' => 'user_id',
      'dependent' => true,
      'exclusive' => false, 'finderQuery' => ''
    )
  );
}

$hasMany array 用來定義 User 包含多條 Blog 這樣的關聯關系。

className: 關聯對象類名。
conditions: 關聯對象限定條件。
order: 關聯對象排列子句。

limit: 用 limit 來限定檢索的關聯對象數量。

foreignKey: 外鍵字段名。
dependent: 是否級聯刪除。
exclusive: 如果為 TRUE,所有的關聯對象將在一句 SQL 中刪除,model 的 beforeDelete 回調函數不會被執行。
finderQuery: 定義一句完整的 SQL 語句來檢索關聯對象,能夠對關聯規則進行最大程度上的控制。

同樣可以為 Blog 加上關聯 User 對象的 belongTo 關聯。

hasAndBelongsToMany 關聯的定義與查詢。

class Blog extends AppModel
{
  var $name = 'Blog';
  var $hasAndBelongsToMany = array('Tag' =>
    array('className'  => 'Tag',
       'joinTable'  => 'blogs_tags',
       'foreignKey'  => 'blog_id',
       'associationForeignKey'=> 'tag_id',
       'conditions'  => '',
       'order'    => '',
       'limit'    => '',
       'uniq'     => true,
       'finderQuery' => '',
       'deleteQuery' => '',
    )
    );
}

$hasAndBelongsToMany array 是定義 HABTM 關聯的變量。

className: 關聯對象類名。
joinTable: 如果沒有遵循 Cake 的命名約定建立關聯表,則需要設置該 key 來指定關聯表。
foreignKey: 定義本 mode 在關聯表中的外鍵字段。
associationForeignKey: 關聯表中指向關聯對象的外鍵字段名。
conditions:  關聯對象限定條件。
order: 關聯對象排序子句。
limit: 關聯對象數量限制。
uniq: 設為 true 的話,重復的關聯對象將被過濾掉。
finderQuery: 完整的關聯對象檢索語句。
deleteQuery: 完整的刪除關聯關系的SQL 語句。

保存關聯對象:

當關聯的兩個對象都沒有持久化,你需要首先持久化主對象。

在保存子對象時要把父對象的 ID 保持在子對象中。

保存 hasAndBelongsToMany 關聯對象:

使用 bindModel()unbindModel() 實時地改變關聯關系

上述內容就是如何在CakePHP框架中使用Model關聯對象,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

娱乐| 安化县| 青阳县| 郑州市| 林周县| 汕尾市| 许昌县| 隆化县| 玛曲县| 高唐县| 苍南县| 九寨沟县| 樟树市| 南开区| 兴宁市| 当阳市| 定安县| 奇台县| 宜丰县| 静宁县| 新乐市| 莲花县| 四川省| 同仁县| 天水市| 盖州市| 临城县| 娄烦县| 浮梁县| 台山市| 涪陵区| 古丈县| 山东| 丰顺县| 安远县| 宝应县| 泽普县| 攀枝花市| 万盛区| 玛纳斯县| 通江县|