日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

CakePHP之Model

發布時間:2024/10/12 php 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CakePHP之Model 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

模型

模型在應用程序中是作為業務層而存在的(怎么感覺是數據層。。。。。。)。這就意味著,模型應當負責管理幾乎所有涉及數據的事情,其合法性,以及你的業務領域中數據在工作流程中的演化和互動 。

通常模型類用來表示數據,并且在 CakePHP 應用程序中用來訪問數據,具體說,模型代表數據庫中的表,但不限于此,也可以訪問任何操控數據的東西,比如文件,外部網絡服務,iCal 日程,或者 CSV 文件中的行。

一個模型可以與其他模型關聯。例如,一份菜譜可以和菜譜的作者關聯,也可以和菜譜的原料相關聯。

本章中我們將解釋模型的哪些特性可以自動化,如何改變這些特性,以及模型有哪些方法和屬性。

我們會解釋關聯數據的各種方式。我們還將描述如何查找,保存和刪除數據。

最后,我們來看一下數據源(Datasource)。

理解模型

模型代表你的數據模型。在面向對象編程中數據模型是表示一件”事物”的對象,比如,一輛汽車,一個人,或者一所房子。

例如,一個博客可以有多篇文章, 每篇文章又可以有多條評論。博客,文章和評論就是彼此關聯的模型的例子。

這里有一個 CakePHP 模型定義的簡單例子:

1 App::uses('AppModel', 'Model'); 2 class Ingredient extends AppModel { 3 public $name = 'Ingredient'; 4 }

?

僅需這樣簡單的聲明,Ingredient 模型就具備了所有用來生成查詢以及保存和刪除數據的功能。這些魔術般的方法來自 CakePHP 的 Model 類,得益于繼承的魔法。

Ingredient 模型擴展了應用程序模型AppModel,而 AppModel 又擴展了 CakePHP 內部的 Model 類。就是這個核心的 Model 類賦予你的 Ingredient 模型這些功能的。App::uses('AppModel',?'Model')?保證模型在每次使用時都延遲加載(當加載對象時,返回代理對象,等到真正用到對象的內容時才發出sql語句)了。

這個中間的類 AppModel 是空的。如果你沒有自己創建,則會從 CakePHP 內核文件夾中取得。重載AppModel,你就可以定義你的應用程序中所有的模型都具備的功能。

為此,你需要在 Model 文件夾中創建自己的?AppModel.php,就象你的應用程序中所有其他的模型一樣。

回到我們的 Ingredient 模型,在?/app/Model/?目錄中創建一個 PHP 文件。

按照慣例,文件名應該和類名一樣; 在本例中就是``Ingredient.php``。

如果 CakePHP 在 /app/Model 目錄中無法找到對應的文件,它就會為你動態創建一個模型對象。這也意味著,如果你的模型文件命名不正確(比如 ingredient.php 或者 Ingredients.php), CakePHP 就會使用 AppModel 的實例,而不是你的找不到的(從 CakePHP 的角度來看)模型文件。如果你試圖使用在你的模型中定義的方法,或者你的模型上附加的行為,然而你得到的卻是關于你調用的方法的名稱的 SQL 錯誤——這明顯是因為 CakePHP 無法找到你的模型,那么你要檢查文件名、應用程序緩存,或者兩者都要檢查。

某些類名是無法作為模型名稱的。例如,”File” 無法使用,因為 “File” 是 CakePHP 內核中已經存在的一個類了。

模型定義了之后,就可以在?控制器?中使用了。如果模型名稱與控制器名稱匹配,CakePHP 就會自動使該模型可以訪問。

例如,一個叫 IngredientsController 的控制器會自動初始化 Ingredient 模型,并把它附加在控制器上,作為?$this->Ingredient:

1 class IngredientsController extends AppController { 2 public function index() { 3 //獲得所有原料并把它傳給視圖: 4 $ingredients = $this->Ingredient->find('all'); 5 $this->set('ingredients', $ingredients); 6 } 7 }

?

關聯的模型可以從主模型訪問到。在下例中,Recipe 與 Ingredient 有關聯:

1 class Recipe extends AppModel { 2 3 public function steakRecipes() { 4 $ingredient = $this->Ingredient->findByName('Steak'); 5 return $this->findAllByMainIngredient($ingredient['Ingredient']['id']); 6 } 7 }

這里展示了如何使用已經關聯在一起的模型。

轉載于:https://www.cnblogs.com/victorruan/p/3564065.html

總結

以上是生活随笔為你收集整理的CakePHP之Model的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 激情戏网站 | 日韩欧美91| 久久看片 | 亚洲欧美偷拍视频 | 欧美1区| 中出在线 | 国产婷婷色综合av蜜臀av | 亚洲男人天堂2024 | 一级不卡毛片 | 茄子香蕉视频 | 永久国产| 97xxxx| 97视频资源| 国产视频aaa | 美攻壮受大胸奶汁(高h) | 少妇一级1淫片 | 亚洲国产aⅴ精品一区二区 日韩黄色在线视频 | 黄页网址大全免费观看 | 久久国产欧美日韩精品 | 日韩不卡中文字幕 | 中国毛片基地 | 国产精品综合久久 | 中文字幕15页 | 色久在线| 亚洲视频二区 | 天天射天天色天天干 | 亚洲乱淫 | 日本色呦呦 | 成人春色影视 | 亚洲精品一二区 | 精品无码av一区二区三区 | 青娱乐91| 免费观看亚洲 | 国内av自拍 | 中文在线a天堂 | 理论片琪琪午夜电影 | а√天堂资源官网在线资源 | 欧美a级片视频 | 天天干网址 | 亚洲成人mv | 国产粉嫩av | 51吃瓜网今日吃瓜 | 日韩无码精品一区二区 | 欧美一区二区三区免费看 | 成人黄色免费在线观看 | 成人在线观看网 | 天堂综合网| 国产sss | 伊人久久大 | 国产精品2018| 另类激情亚洲 | 高清中文字幕av | 五月婷婷在线播放 | 精品国产乱码久久久久久图片 | 国产无码精品视频 | 波多野结衣在线播放 | 日本私人影院 | 国产高清自拍视频 | 暖暖免费观看日本版 | 99久久久无码国产精品免费 | 美女午夜视频 | 中文字幕国产一区二区 | 欧美激情图区 | 台湾性生生活1 | 高h奶汁双性受1v1 | 亚洲一区自拍 | 日一区二区 | 亚洲第三区 | 亚洲一级Av无码毛片久久精品 | 96日本xxxxxⅹxxx70 | 国内偷拍一区二区 | 日韩欧美的一区二区 | 欧美性猛交xxxx乱大交hd | 麻豆成人精品 | 好男人在线视频www 亚洲福利国产 | 免费av网址大全 | 国产欧美三区 | 91播放在线 | 中文字幕视频观看 | 99色这里只有精品 | 另类第一页 | 免费在线黄网 | 亚洲精品在线不卡 | 九九热免费在线视频 | 无码精品人妻一区二区三区湄公河 | 伊人久久精品一区二区三区 | 在线看成人av | 日本乱论视频 | japan高清日本乱xxxxx | av第一区| 欧美操穴| 欧美日韩高清在线播放 | 国产精选网站 | 一级片免费网址 | 靠逼视频免费网站 | 精品人妻无码一区二区三区蜜桃一 | 丰满熟妇肥白一区二区在线 | 欧美一区二区三区国产 | 日韩毛片高清在线播放 |