久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

CakePHP框架Model關(guān)聯(lián)對象用法分析

這篇文章主要介紹了CakePHP框架Model關(guān)聯(lián)對象用法,結(jié)合實(shí)例形式分析了cakePHP框架Model關(guān)聯(lián)對象的功能、定義及具體使用方法,需要的朋友可以參考下

本文實(shí)例講述了CakePHP框架Model關(guān)聯(lián)對象。分享給大家供大家參考,具體如下:

CakePHP 提供關(guān)聯(lián)數(shù)據(jù)表間的映射,共有4種類型的關(guān)聯(lián):

hasOne,hasMany,belongTo,hasAndBelongsToMany.

設(shè)定了Model間的關(guān)聯(lián)關(guān)系定義,CakePHP就會將基于關(guān)系數(shù)據(jù)庫的數(shù)據(jù)映射為基于對象的關(guān)系模型。

但是你應(yīng)該確保遵循CakePHP的命名規(guī)則.

命名規(guī)則中需要考慮的3個內(nèi)容是,外鍵,model名字,表名.

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

hasOne 關(guān)聯(lián)的定義與查詢:通過在model中增加一個array來實(shí)現(xiàn).

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

$hasOne 變量是一個array,CakePHP 通過該變量來構(gòu)建 Blog 與 User 之間的關(guān)聯(lián)。

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

belongsTo 關(guān)聯(lián)的定義與使用

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

className: 關(guān)聯(lián)對象的類名。
conditions: SQL 條件子句以限定關(guān)聯(lián)的對象。
order: 關(guān)聯(lián)對象的排序子句。
foreignKey: 關(guān)聯(lián)對象所對應(yīng)的外鍵字段名。

hasMany 關(guān)聯(lián)的定義與查詢

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 這樣的關(guān)聯(lián)關(guān)系。

className: 關(guān)聯(lián)對象類名。
conditions: 關(guān)聯(lián)對象限定條件。
order: 關(guān)聯(lián)對象排列子句。

limit: 用 limit 來限定檢索的關(guān)聯(lián)對象數(shù)量。

foreignKey: 外鍵字段名。
dependent: 是否級聯(lián)刪除。
exclusive: 如果為 TRUE,所有的關(guān)聯(lián)對象將在一句 SQL 中刪除,model 的 beforeDelete 回調(diào)函數(shù)不會被執(zhí)行。
finderQuery: 定義一句完整的 SQL 語句來檢索關(guān)聯(lián)對象,能夠?qū)﹃P(guān)聯(lián)規(guī)則進(jìn)行最大程度上的控制。

同樣可以為 Blog 加上關(guān)聯(lián) User 對象的 belongTo 關(guān)聯(lián)。

hasAndBelongsToMany 關(guān)聯(lián)的定義與查詢。

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 關(guān)聯(lián)的變量。

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

保存關(guān)聯(lián)對象:

當(dāng)關(guān)聯(lián)的兩個對象都沒有持久化,你需要首先持久化主對象。

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

保存 hasAndBelongsToMany 關(guān)聯(lián)對象:

使用 bindModel()unbindModel() 實(shí)時地改變關(guān)聯(lián)關(guān)系:

【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請勿用于商業(yè)用途。如損害你的權(quán)益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

這篇文章主要給大家介紹了關(guān)于Laravel學(xué)習(xí)教程之model validation使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來
這篇文章主要給大家介紹了關(guān)于如何利用預(yù)加載優(yōu)化Laravel Model查詢的相關(guān)資料,文章通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面
這篇文章主要介紹了CakePHP框架Model函數(shù)定義方法,結(jié)合具體查詢函數(shù)示例分析了CakePHP框架Model函數(shù)的定義方法,需要的朋友可以參考下
主站蜘蛛池模板: 亚洲成人国产 | 色资源在线 | 日本黄色免费看 | 伊人久久av | 青青草成人在线 | 国产精品免费一区 | 久久怡红院 | 中文字幕www | 亚洲在线播放 | 免费黄视频网站 | 羞羞网站在线观看 | 亚洲色在线视频 | 五月婷婷六月激情 | 在线观看亚洲一区 | 黄色激情视频在线观看 | 噜噜视频 | 午夜免费观看视频 | 中文字幕精品视频 | 精品免费在线观看 | 欧美999| 糖心vlog精品一区二区 | 成年人黄色网址 | 男女啪啪网站 | 久久九九精品 | 天堂一区二区三区 | 韩日中文字幕 | 免费中文字幕 | 在线中文字幕 | 欧美精品二区三区四区免费看视频 | 在线免费观看黄 | 免费视频一区 | 超碰免费在线 | 可以免费看av的网站 | 在线观看a视频 | 天天综合av | 国产精品美女视频 | 国产欧美综合一区二区三区 | 国产精品va | 男女视频免费 | 久久精品一区二区三区四区 | 九九精品免费视频 |