yii-代碼課件筆記圖解框架_第1頁
yii-代碼課件筆記圖解框架_第2頁
yii-代碼課件筆記圖解框架_第3頁
yii-代碼課件筆記圖解框架_第4頁
yii-代碼課件筆記圖解框架_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

介紹、安裝部署框架、商城模板與yii結(jié)合、歷史:2008年1 到現(xiàn) 框架: TP( web開發(fā)者 (版本情況:(2008年2009年 (2010年現(xiàn)在 【yiiCms內(nèi)容管理系統(tǒng)Shop商城系統(tǒng)Office辦公系統(tǒng)客戶關(guān)系管理系統(tǒng)開始我們的應(yīng)用系統(tǒng)【yii在什么地方用的多】框架 DedecmsEcshop是做商城的框是做客戶關(guān)系管理系統(tǒng)的框架3YiiOOP【商城模板與YiiYii需要走路由,設(shè)置好路由就會找到對應(yīng)的控制器和方 路由http: ControllerControllerviewModelMVC將樣式、、js靜態(tài)資源集成到系統(tǒng)里Css樣式:/assets/default/css/ 靜態(tài)資 統(tǒng)一放入系統(tǒng)常量里邊,方便調(diào)用用戶登錄模板與YiiUserController創(chuàng)建視圖控制器調(diào)用視圖$this引入css和,將樣 與放入常量,統(tǒng)一調(diào)用http:///index.php?r=控制器/方【商城其他頁面與YiiNetbeans今晚主要任務(wù)Yii1,Yii框架部署起來(根據(jù)自己情況搭建虛擬主機,也可以使用2,控制器和視圖理控制器 (名字方法: (action名字Views/下邊有許多 原則是:每個控制器名字在views下都有對應(yīng) 理解好常量文件constant.php(樣 和定義模板引入樣式和自定義控制器【昨天內(nèi)容回顧我們又學(xué)習(xí)控制器和視 這個父類我們沒有顯示包含進(jìn)程序里邊,比如include、requre之類包含指那么這個父類控制器Controller我們在什么地方給包含進(jìn)來的答:在Yii應(yīng)用的主配置文件里邊main.php,間接通過引入compoments組 那么主配置文件main.php在什么地方引入到我們的應(yīng)用里邊的呢?答:在統(tǒng)一處index.php控制 》父類控制 臺通過“布局”展示模板樣學(xué)習(xí)使用自動代碼生成工具gii,通過gii創(chuàng)建模在將模板展示出根據(jù)情況引入數(shù)【yii布局實現(xiàn)我們系統(tǒng)默認(rèn)的布局文件是colum1.php使用布局文件布局文件具體與什么有關(guān)系render()這個方渲染布局。把公共的頭部提現(xiàn)在我們布局已經(jīng)做好了制作布局文件layouts/文件名字,使用$content代表普遍模板內(nèi)容設(shè)置布局文件,在父類控制器里邊public$layout調(diào)用布局文件,在控制器方法里邊使用方法render()就會調(diào)用布局文件【商城部署一般都會有“前臺”和“”是給公司人員來使用例如我們給添加商品修改商品等操作是通過 來處理的。有自己的控制器和視我們程序的架構(gòu)是部署在Yii上邊Yii自己有一個模塊機制,可以幫組我們實現(xiàn)的搭模塊:有自己獨立的控制器、獨立的視圖、獨立的模型,其不可以單獨部我們創(chuàng)建模塊:gii(自動代碼生成工具giiYii里半是以模塊形式存在main.php配置文件里邊打開gii模塊,gii模塊如何來通過路由形式該模 /index.php?r=模塊名路由會判斷當(dāng)前的名字,是模塊定位到模塊,否則定位控制現(xiàn)在我們要生成一個模我們給起一個名字現(xiàn)在現(xiàn)在我 模塊已經(jīng)創(chuàng)建成功,要想使用,必須在main.php引入該模現(xiàn)在我們模 默認(rèn)模板文,,如上圖顯示的時候為什么會顯示前臺的布局內(nèi)容,是Yii代碼重用性的體 【模板效果展示在有用戶登錄功通過控制器和視圖展示登錄我們操作與操作前臺是完全一樣的行為習(xí)慣,不同的是我們 前臺 /index.php?r=控制器/方在iC制器、視圖、模型。前臺可以實現(xiàn)的功能,模塊都可以實現(xiàn)。【實現(xiàn)其他頁面效果我們整體架構(gòu)使用html里邊的框架左側(cè)菜單部分整整體實使用了frameset將頭部左側(cè)右側(cè)三種結(jié)合到一起形成了html框架布局,控制器goods視 //新窗口展 內(nèi) //本窗口展 內(nèi)target=”名字 //這個名字與frame里邊的名字一致那么內(nèi)容會跑到這frame里邊前臺視圖文件的布局效果實我們使用自動代碼生成工具gii生成了模視圖頁面實現(xiàn)(登錄、frameset主體框架頁面、商品操作)利用gii將模塊創(chuàng)建出的登錄、主體frameset框架頁面、商品添加修改展示頁面實現(xiàn)出布局效果根據(jù)個人情況具體實現(xiàn)前兩天學(xué)習(xí)Yii框前臺的控制器和視圖制作出來(模板與Yii框架結(jié)合)視圖模板關(guān)于布局layout使用部署,gii生成模登錄、商品展示、主體frameset框架部署起模塊:讓前臺和的代碼在物理上分隔來當(dāng)我們有相對獨立的業(yè)務(wù)需求,都可以通過模塊來解決MVC框架 模操作數(shù)據(jù)庫步驟建立數(shù)據(jù)庫php0507、建立數(shù)據(jù)表、寫入測試數(shù)通過Yii框架連接數(shù)據(jù)庫注意:數(shù)據(jù)庫內(nèi)部處理走PDO,因此需要讓php開啟PDO擴展。測試Yii框架是否有上數(shù)據(jù)在控制器里邊隨便一個地方輸出信息紅色文字意思是獲得數(shù)據(jù)庫ii::app:ii框架是純OP面向?qū)ο罂蚣埽看蝏請求,相當(dāng)于通過對象,我們也可以通過代碼獲得這個應(yīng)用對象ii::app。以上信息出現(xiàn)說明數(shù)據(jù)庫有連接成功【使用數(shù)據(jù)庫現(xiàn)在我們可以對數(shù)據(jù)庫進(jìn)行增、刪、改、查操MVC,現(xiàn)在我們需要制作model來操作數(shù)據(jù)我們來看看“db”到底是誰Yii框架代碼大約有10000行,有一個文件將全部代碼整理了【使用數(shù)據(jù)模型goods利用模型查詢數(shù)據(jù)表的數(shù)據(jù),在實現(xiàn)商品信息的查我們學(xué)習(xí)AR讓頁面底部產(chǎn)生日志信息獲得全部商品信息遍歷出來的結(jié)果是具體每條記錄的對獲得具體信息 返回了一個數(shù)組,里邊有好多對象元素信 直接返回了一個對象,可以通過對象獲得具體商品信息【數(shù)據(jù)信息展現(xiàn)到視圖模板里邊通過模型獲得商品信息展現(xiàn)到頁面通過模型獲得具體商品信將商品信息傳遞到視圖模板里邊renderPartial(’視圖’,被傳遞變量信息在視圖里邊獲得具體商品信息展示【通過具體sql語句獲得信息數(shù)據(jù)模型個數(shù)據(jù)表對應(yīng)一個模型對象可以調(diào)用類里邊的相關(guān)方法,進(jìn)而對數(shù)據(jù)庫進(jìn)行操AR:CActiveRecord,活躍記錄,就是模型,就是【通過模型model實現(xiàn)數(shù)據(jù)的添加數(shù)據(jù)表的字段,就是我們創(chuàng)建模型對象的屬性如何添加數(shù)據(jù)我們把模型對象的屬性信息設(shè)置好,就可以實現(xiàn)數(shù)據(jù)的添加【利用頁面表單實現(xiàn)數(shù)據(jù)添利用助手進(jìn)行表單展助手:利用php程序來生成html代碼Yii里邊稱助手是“小物通過widget小物件創(chuàng)建添加商品的表單其次控制器需要把當(dāng)前模型對象傳遞到視圖里邊,以供表單再次數(shù)據(jù)模型需要有一個方法提供漢字名字統(tǒng)一顯<?phpecho$form->labelEx($goods_model,'goods_name')<?phpecho$form->labelEx($goods_model,'goods_weight')表單校驗今天59日內(nèi)容總結(jié)yii框架連接數(shù)據(jù)庫main.php(db組件的配置制作數(shù)據(jù)模型我們通過數(shù)據(jù)模型對數(shù)據(jù)庫進(jìn)行查詢和添加信息操作通過小物件生成form表配置數(shù)據(jù)庫,完成goods模型的創(chuàng)通過小物件實現(xiàn)添加商品信息form表單的顯模型關(guān)于商品的數(shù)據(jù)模型goods findAll()該查詢系列幫助我們獲得多條數(shù)據(jù),以數(shù)組形式給我們返回,find()該查詢系列幫助我們每次只獲得一條數(shù)據(jù),以模型對象的形式給我們使用模型model步驟創(chuàng)建模型對①模型名字② 模型模型利用對象調(diào)用模型里邊的一些方法,實現(xiàn)對數(shù)據(jù)的操【商品數(shù)據(jù)添加現(xiàn)在我們已經(jīng)把添加的表單展現(xiàn)出來,widget小物件展示的表單。 模型屬性與漢字名字對將模型傳遞到視圖里view(小物件 普通輸入 展現(xiàn)對名稱與模型屬性對【商品添加邏輯部分在控制器我們接收表單數(shù)商品添制作表數(shù)據(jù)模型調(diào)用save方法,實現(xiàn)數(shù)據(jù)添加【數(shù)據(jù)修改獲得被修改的數(shù)據(jù)》展現(xiàn)到一個表單里邊(呈現(xiàn)被修改數(shù)據(jù)的 》在表里邊針對具體內(nèi)容進(jìn)行修 》修改完畢提交表單進(jìn)行數(shù)據(jù)的更修改商品信息,我們使用的模板是添加時候的模板,基本沒有改動,fom發(fā)的成本,這也是我們使用小物件創(chuàng)建fom表單的原因之一。還有一個使用小物件的原因是表單驗證需要使用小物件同樣是save()方法被調(diào)用,有insert語句或update語句區(qū)分 和都可以進(jìn)行查前者主要是在添加的時候使用,后者是在查詢或修改的時候使如果我們添加數(shù)不使用newGoods,而使用Goods::model那么數(shù)據(jù)添加失敗【商品信息刪除【newGoods 和Goods::model() 執(zhí)行insert 執(zhí)行update【數(shù)據(jù)查詢延伸AR(CActiveRecord)活躍記find()查詢一個findByPk根據(jù)主鍵查詢信息findBySql根據(jù)sql語句查詢信息findAllByPk根據(jù)主鍵查詢?nèi)縡indAllBySql根據(jù)sql語句查詢?nèi)縡indBySql和根據(jù)sql語句查詢信息,前者會查詢一條記錄信息,后者會查詢條記錄信息 limit10findByPk和都是根據(jù)主鍵進(jìn)行信息的查 offset都是從哪來的我們使用findAll()該方法是數(shù)據(jù)模型給我們封裝好的方法,可以獲得全部數(shù)據(jù)通過OOP面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫。AR需要最終轉(zhuǎn)變?yōu)榫唧w的sql語句,過一個中間類(criteria標(biāo)準(zhǔn))協(xié)助轉(zhuǎn)為的具體sql語句上邊的關(guān)鍵字就是這個中間類criteria的一些屬性。今天內(nèi)容總商品添加邏輯部分完成通過get方式傳遞被修改商品信息id,同時在控制器方法里邊有參數(shù)接刪除商品信息刪除和修改信息,需要注意是那個模型對象調(diào)用方法詳細(xì)介紹數(shù)據(jù)查詢和中間標(biāo)criteria講商品的增、刪、改、查最好都要實現(xiàn)一【昨天內(nèi)容回顧數(shù)據(jù)模型model進(jìn)行操作增加數(shù)據(jù)通過小物件widget建立表收集表單信息,將信息放入數(shù)據(jù)模型的對象里調(diào)用數(shù)據(jù)模型的方法save()實現(xiàn)數(shù)據(jù)的 修改數(shù)據(jù)通過get方式傳遞被修改商品的通過小物件widget建立修改表收集表單信息,將信息放入數(shù)據(jù)模型的對象里調(diào)用數(shù)據(jù)模型的方法save()實現(xiàn)數(shù)據(jù)的 刪除數(shù)據(jù) 通過get方式將被刪除商品的id傳遞到刪除頁面查詢數(shù)據(jù) 每次只獲得一條數(shù)據(jù),以模型對象的形式給我們返find 條的形式給我們返回 相當(dāng)于where后邊的條 where條件設(shè)置參數(shù)中間類 AR方式處理數(shù)據(jù)庫信息 活躍記數(shù)據(jù)分頁、前臺用戶、根據(jù)具體情況講解用戶登陸系【商品信息分頁數(shù)據(jù)總的記錄數(shù)目 ==110條數(shù)每頁需要顯示信息數(shù)目 20條數(shù)分頁的總頁數(shù)page=count除以 向上取整5.5向上取整等于獲得具體每頁信 該關(guān)鍵字在mysql里邊可以限制每次獲得信息的條 第一頁 第二頁 第三頁 第n頁 (n-分頁類與Yii框架分頁類在Yii框架里邊以組件components形式存獲得總的商品記錄數(shù)實例化分頁對重新拼裝具體分頁sql語句指獲得頁碼列分頁類與Yii框架結(jié)合,是以組件components的形式存在【前臺實現(xiàn)用戶功能在本質(zhì)上與商品添加是一樣的多種樣式表數(shù)據(jù)驗在數(shù)據(jù)庫建立用戶表設(shè)置separator分割實現(xiàn)用戶信息收集、校驗信息(表單驗證現(xiàn)在我們實現(xiàn)表單驗證我們調(diào)用attributes一個模型里邊不存在的屬類會自動執(zhí)行魔術(shù)方法今天內(nèi)容總結(jié)數(shù)據(jù)分頁實現(xiàn)分類頁當(dāng)做組件被繼承到Y(jié)ii框架里小物件widget創(chuàng)建用戶表單,使用多種表單域?qū)崿F(xiàn)方法通過model數(shù)據(jù)模型里邊的方法rules()設(shè)置,具體驗證規(guī)attributes是數(shù)據(jù)模型的屬性,可以幫組我們收集表單信息 ,實現(xiàn)商品數(shù)據(jù)分頁顯臺通過小物件把用戶表單實現(xiàn)出來練物件widget使用2013-5-用戶驗用戶登錄系統(tǒng)功【用戶驗證通過小物件創(chuàng)建form表單收集表單數(shù)據(jù)attributes(對foreach的封裝 表單數(shù)據(jù)驗證 復(fù)選框驗$user_model->attributes=attributes這個屬性在使用的時候會收集表單信息并賦予模型屬性里該屬性是和rules()方法一并使用,只有在rules()里邊設(shè)置了驗證規(guī)則的屬性才可以被attributes接收如果有的屬性沒有具體驗證規(guī)則,則給一個safe規(guī)則確確驗 與labelEx區(qū)如果有的選項是必填項(例如用戶名那么labelEx會有一個”*”星號標(biāo)識label就沒表單驗證rules()放進(jìn)行數(shù)據(jù)驗好的具體驗證方法進(jìn)行驗證。【引入jquery進(jìn)行數(shù)據(jù)驗有的項目是jquery本身無法驗證的,那么就會跑到服務(wù)器繼續(xù)驗證【用戶登錄系統(tǒng)實現(xiàn)制作表收集表單數(shù)據(jù)(用戶名、去數(shù)據(jù)庫校驗用用戶信息session在Yii框架里邊有兩個模型:數(shù)據(jù)模型、表單模數(shù)據(jù)模型:與數(shù)據(jù)庫進(jìn)行交互的模型model(例如good模型、user模型)我們要使用登錄表單模型來進(jìn)行用戶登錄系統(tǒng)功能實登錄模型操作與數(shù)據(jù)模型是一致的不同模型不與數(shù)據(jù)庫進(jìn)行交表單數(shù)據(jù)校驗save()方法可以一邊校驗數(shù)據(jù),校驗成功可以數(shù) 到后邊有一個環(huán)節(jié)會執(zhí)行模型的rules()方法,也就校驗表單我們現(xiàn)在實現(xiàn)用戶登錄需要校驗,可以調(diào)用validate(),該方法可以校驗我們輸validat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論