新聞中心
CakePHP腳手架工具主要是用來(lái)設(shè)置數(shù)據(jù)庫(kù)和模型的。下面介紹這個(gè)CakePHP腳手架工具的操作原理及方法。

為于都等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及于都網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、于都網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
我們已經(jīng)知道,模型類(lèi)通常都是用來(lái)與數(shù)據(jù)庫(kù)進(jìn)行互動(dòng)的。在CakePHP中,一個(gè)模型類(lèi)通常都對(duì)應(yīng)數(shù)據(jù)庫(kù)中的莫個(gè)表。所有對(duì)表進(jìn)行的數(shù)據(jù)庫(kù)操作都是通過(guò)對(duì)應(yīng)的模型類(lèi)來(lái)實(shí)施的。CakePHP的模型與數(shù)據(jù)庫(kù)表之間的對(duì)應(yīng)關(guān)系無(wú)需設(shè)置。相反,CakePHP使用了一些簡(jiǎn)單的命名規(guī)則來(lái)實(shí)現(xiàn)這一效果,在這一部分,我們將了解到如何為數(shù)據(jù)庫(kù)中的表的創(chuàng)建對(duì)已的模型類(lèi)。CakePHP提供了一個(gè)名為"腳手架"工具來(lái)幫助我們檢查先前創(chuàng)建好的模型和數(shù)據(jù)庫(kù)表。我們也將了解到如何使用“腳手架”功能完成這一工作。
為數(shù)據(jù)庫(kù)中的表創(chuàng)建模型
在了解模型類(lèi)是如何與數(shù)據(jù)庫(kù)表進(jìn)行互動(dòng)之前,我們首先要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫(kù)表。在接下來(lái)這一部分中,我們首先將創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表,然后了解如何為這個(gè)表創(chuàng)建一個(gè)模型類(lèi)。然后我們也會(huì)使用腳手架功能對(duì)新創(chuàng)建的模型和數(shù)據(jù)表進(jìn)行一個(gè)快速的測(cè)試。
動(dòng)手時(shí)間:創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表以及對(duì)應(yīng)的模型
1,在MySQL命令提示行中,我們輸入如下數(shù)據(jù)庫(kù)命令來(lái)創(chuàng)建一個(gè)名為data-access的新數(shù)據(jù)庫(kù)。
- CREATE DATABASE `data-access`;
2,通過(guò)執(zhí)行下面的SQL語(yǔ)句來(lái)創(chuàng)建一個(gè)“books”表:
- USE `data-access`;
- CREATE TABLE `books` (
- `id` int( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
- `isbn` varchar( 10 ) NOT NULL ,
- `title` varchar( 127 ) NOT NULL ,
- `description` text NOT NULL ,
- `author_name` varchar( 127 ) NOT NULL
- )
3,將一份全新的CakePHP文件夾放置到你的網(wǎng)頁(yè)根目錄下。將Cake的文件夾重命名為data-access.
4,進(jìn)入Cake安裝文件夾下的/app/config目錄。你找到一個(gè)名為 database.php.default的文件。將這個(gè)文件重命名為database.php。使用你喜歡的編輯器打開(kāi)它。編輯文件中的$default數(shù)組以配置好你的數(shù)據(jù)庫(kù)。在編輯好之后,它看起來(lái)應(yīng)該跟下面這段內(nèi)容差不多
- var $default = array(
- 'driver' => 'mysql',
- 'persistent' => false,
- 'host' => 'localhost',
- 'port' => '',
- 'login' => 'username',
- 'password' => 'password',
- 'database' => 'data-access',
- 'schema' => '',
- 'prefix' => '',
- 'encoding' => ''
- );
5,現(xiàn)在,在你的瀏覽器中輸入如下地址http://localhost/data-access。瀏覽器會(huì)顯示以一個(gè)“CakePHP已經(jīng)能夠與數(shù)據(jù)庫(kù)進(jìn)行連接”的信息,我們就此可以確認(rèn)數(shù)據(jù)庫(kù)的配置非常***。如果配置不對(duì)的話(huà),它會(huì)顯示一個(gè)"Cake無(wú)法與數(shù)據(jù)進(jìn)行連接”的信息。如果碰到這種情況,又很有可能是你提供的數(shù)據(jù)庫(kù)信息不正確。立刻返回到第四步,使用正確的數(shù)據(jù)庫(kù)名稱(chēng),數(shù)據(jù)庫(kù)用戶(hù)名和密碼來(lái)填寫(xiě)$default數(shù)組
6,在/app/models文件夾下創(chuàng)建一個(gè)新的PHP文件,將其命名為book.php
7,在book.php文件中,添加如下代碼:
- class Book extends AppModel
- {
- var $name = 'Book';
- }
- ?>
8,現(xiàn)在在 /app/controllers文件夾下另外創(chuàng)建一個(gè)PHP文件,將其命名為books_controller.php
9,在books_controller.php文件中添加如下代碼:
- class BooksController extends AppController {
- var $name = 'Books';
- var $scaffold;
- }
- ?>
10,現(xiàn)在,使用瀏覽器打開(kāi)這個(gè)地址http://localhost/data-access/books/,添加一些測(cè)試數(shù)據(jù)。
怎么回事?
首先,我們創(chuàng)建了一個(gè)名為data-access的數(shù)據(jù)庫(kù)。接著,我們?cè)谶@個(gè)數(shù)據(jù)庫(kù)中創(chuàng)建了一個(gè)名為books的數(shù)據(jù)庫(kù)表。books表的結(jié)構(gòu)如下:
我們這里使用的數(shù)據(jù)庫(kù)表名和字段名并不是隨意選取的。CakePHP對(duì)于數(shù)據(jù)庫(kù)表和字段的命名都有確定的命名規(guī)則:
◆表名必須是復(fù)數(shù)形式的英文小寫(xiě)(像boooks,catergories,articles等等)
◆如果需要使用兩個(gè)以及兩個(gè)以上的單詞來(lái)對(duì)表和字段進(jìn)行命名,我們需要使用下劃線(xiàn)來(lái)把單詞分開(kāi)(像author_name,user_photos等)
◆數(shù)據(jù)庫(kù)表中的字段必須有一個(gè)名為id的主鍵
在我們這個(gè)例子中,我們使用的數(shù)據(jù)庫(kù)表名books是英文復(fù)數(shù)形式。我們也有一個(gè)名為id的主鍵。我們需要使用兩個(gè)單詞來(lái)對(duì)表的第5個(gè)字段進(jìn)行命名——author_name,我們使用下劃線(xiàn)來(lái)連接這兩個(gè)單詞。
[ 如果你之前寫(xiě)過(guò)PHP/MySQL的應(yīng)用程序,那么你可能會(huì)以你自己喜歡的方式對(duì)數(shù)據(jù)庫(kù)表進(jìn)行命名,然后寫(xiě)SQL語(yǔ)句來(lái)訪(fǎng)問(wèn)這些數(shù)據(jù)庫(kù)。但是,當(dāng)你使用CakePHP時(shí),你應(yīng)該遵循它的命名規(guī)則。雖然我們不一定要完全遵循它的命名規(guī)則,但是對(duì)規(guī)則的遵守會(huì)幫助我們省下不少寶貴的時(shí)間。此外,堅(jiān)持這一規(guī)則通常都能提高代碼的質(zhì)量和可維護(hù)性。通過(guò)本書(shū)的這一章節(jié)和其他章節(jié),我們將會(huì)看到CakePHP的這些規(guī)則是如何幫我們以一種更便捷更酷的方式完成事情的。 ]
我們的數(shù)據(jù)庫(kù)已經(jīng)準(zhǔn)備就緒,我們已經(jīng)對(duì)我們的應(yīng)用做好配置,并且連接到數(shù)據(jù)庫(kù)了。在第三章中,我們已經(jīng)學(xué)習(xí)過(guò)如何對(duì)我們的應(yīng)用進(jìn)行配置,以便連接的數(shù)據(jù)庫(kù)。在完成數(shù)據(jù)庫(kù)配置后,我們開(kāi)始為我們的模型編寫(xiě)代碼。
我們已經(jīng)知道,在CakePHP中,模型類(lèi)都通常都被用來(lái)訪(fǎng)問(wèn)對(duì)應(yīng)的數(shù)據(jù)庫(kù)表,因此,要訪(fǎng)問(wèn)books表,我們需要?jiǎng)?chuàng)建對(duì)應(yīng)的模型類(lèi)。CakePHP對(duì)于模型類(lèi)和模型文件有固定的命名規(guī)則。具體規(guī)則如下:
◆模型的文件名必須用對(duì)應(yīng)數(shù)據(jù)庫(kù)的表名來(lái)命名,但是是單數(shù)形式。比如,如果你的數(shù)據(jù)表名是user_photos,那么模型的文件名就應(yīng)該是user_photo.php
◆模型的類(lèi)名應(yīng)該是模型文件名的駱駝拼寫(xiě)形式( CamelCased form)。如果我們的模型文件名稱(chēng)是user_photo.php,那么模型的類(lèi)名就應(yīng)該是UserPhoto
◆模型文件都放置在 /app/models目錄下。
[ CakePHP會(huì)通過(guò)命名規(guī)則自動(dòng)了解到哪個(gè)模型類(lèi)對(duì)應(yīng)哪個(gè)數(shù)據(jù)庫(kù)的表。在我們這個(gè)例子中,我們模型的類(lèi)名稱(chēng)Book暗示它對(duì)應(yīng)的數(shù)據(jù)庫(kù)表是books表??矗嗍∈?,我們無(wú)需對(duì)此做什么手動(dòng)設(shè)置。 ]
然后我們創(chuàng)建了一個(gè)名為Book的模型類(lèi),然后將類(lèi)文件命名為book.php,并將其保存在 /app/models 文件夾下,因?yàn)槲覀冋_的遵循了命名規(guī)則,CakePHP現(xiàn)在會(huì)自動(dòng)檢測(cè)到我們的Book類(lèi)是數(shù)據(jù)庫(kù)表books所對(duì)應(yīng)的模型類(lèi)。
一旦我們創(chuàng)建好數(shù)據(jù)庫(kù)表和模型,我們就能使用CakePHP的腳手架功能創(chuàng)建出一個(gè)能進(jìn)行數(shù)據(jù)庫(kù)基本操作(比如,添加,編輯,和刪除操作)的簡(jiǎn)單應(yīng)用程序來(lái)。在對(duì)Book模型使用腳手架功能之間,我們首先需要?jiǎng)?chuàng)建一個(gè)相關(guān)的控制器類(lèi)BooksController。然后我們?cè)诳刂破黝?lèi)里面添加了一行變量$scaffold 。這一短短的代碼將會(huì)為數(shù)據(jù)庫(kù)表books所對(duì)應(yīng)的Book模型搭建一個(gè)腳手架——沒(méi)錯(cuò),就是這么簡(jiǎn)單!
訪(fǎng)問(wèn)這個(gè)鏈接 http://localhost/data-access/books/,CakePHP腳手架功能已經(jīng)為我們創(chuàng)建了一個(gè)帶有添加,讀取,更新和刪除功能的基本應(yīng)用。在添加一些數(shù)據(jù)后,頁(yè)面的模樣應(yīng)該如下圖:
[ 創(chuàng)建一個(gè)腳手架所需要的東西包括一個(gè)數(shù)據(jù)庫(kù)表,對(duì)應(yīng)模型以及控制器,以及一些規(guī)則。一旦萬(wàn)事俱備,我們只需在控制器中設(shè)置一個(gè)$scaffold屬性就可以創(chuàng)建一個(gè)基本上能運(yùn)行的應(yīng)用來(lái)! ]
腳手架功能是我們用來(lái)測(cè)試數(shù)據(jù)庫(kù)表的一個(gè)快捷方式,在開(kāi)發(fā)周期的早期階段,對(duì)數(shù)據(jù)庫(kù)表的改動(dòng)通常都比較頻繁。但是需要記住的是,腳手架功能只是一種臨時(shí)的手段。它也不俱備完全的靈活性。在專(zhuān)門(mén)應(yīng)用程序中,我們都需要定制自己的邏輯和用戶(hù)界面。要實(shí)現(xiàn)這點(diǎn),我們拆掉腳手架,然后添加上我們自己的一些代碼。我們將很快看到如何編寫(xiě)一些俱備 CRUD(創(chuàng)建、讀取、更新、刪除)功能的實(shí)際代碼。
當(dāng)前標(biāo)題:使用CakePHP腳手架工具設(shè)置數(shù)據(jù)庫(kù)和模型
網(wǎng)站URL:http://m.fisionsoft.com.cn/article/dhodsje.html


咨詢(xún)
建站咨詢(xún)
