溫馨提示×

溫馨提示×

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

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

怎么使用CakePHP腳手架工具設(shè)置數(shù)據(jù)庫和模型

發(fā)布時間:2021-10-18 16:26:37 來源:億速云 閱讀:92 作者:柒染 欄目:編程語言

怎么使用CakePHP腳手架工具設(shè)置數(shù)據(jù)庫和模型,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

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

我們已經(jīng)知道,模型類通常都是用來與數(shù)據(jù)庫進(jìn)行互動的。在CakePHP中,一個模型類通常都對應(yīng)數(shù)據(jù)庫中的莫個表。所有對表進(jìn)行的數(shù)據(jù)庫操作都是通過對應(yīng)的模型類來實施的。CakePHP的模型與數(shù)據(jù)庫表之間的對應(yīng)關(guān)系無需設(shè)置。相反,CakePHP使用了一些簡單的命名規(guī)則來實現(xiàn)這一效果,在這一部分,我們將了解到如何為數(shù)據(jù)庫中的表的創(chuàng)建對已的模型類。CakePHP提供了一個名為"腳手架"工具來幫助我們檢查先前創(chuàng)建好的模型和數(shù)據(jù)庫表。我們也將了解到如何使用“腳手架”功能完成這一工作。

為數(shù)據(jù)庫中的表創(chuàng)建模型

在了解模型類是如何與數(shù)據(jù)庫表進(jìn)行互動之前,我們首先要創(chuàng)建一個數(shù)據(jù)庫表。在接下來這一部分中,我們首先將創(chuàng)建一個數(shù)據(jù)庫表,然后了解如何為這個表創(chuàng)建一個模型類。然后我們也會使用腳手架功能對新創(chuàng)建的模型和數(shù)據(jù)表進(jìn)行一個快速的測試。

動手時間:創(chuàng)建一個數(shù)據(jù)庫表以及對應(yīng)的模型

1,在MySQL命令提示行中,我們輸入如下數(shù)據(jù)庫命令來創(chuàng)建一個名為data-access的新數(shù)據(jù)庫。

CREATE DATABASE `data-access`;

2,通過執(zhí)行下面的SQL語句來創(chuàng)建一個“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)頁根目錄下。將Cake的文件夾重命名為data-access.

4,進(jìn)入Cake安裝文件夾下的/app/config目錄。你找到一個名為 database.php.default的文件。將這個文件重命名為database.php。使用你喜歡的編輯器打開它。編輯文件中的$default數(shù)組以配置好你的數(shù)據(jù)庫。在編輯好之后,它看起來應(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。瀏覽器會顯示以一個“CakePHP已經(jīng)能夠與數(shù)據(jù)庫進(jìn)行連接”的信息,我們就此可以確認(rèn)數(shù)據(jù)庫的配置非常***。如果配置不對的話,它會顯示一個"Cake無法與數(shù)據(jù)進(jìn)行連接”的信息。如果碰到這種情況,又很有可能是你提供的數(shù)據(jù)庫信息不正確。立刻返回到第四步,使用正確的數(shù)據(jù)庫名稱,數(shù)據(jù)庫用戶名和密碼來填寫$default數(shù)組

6,在/app/models文件夾下創(chuàng)建一個新的PHP文件,將其命名為book.php

7,在book.php文件中,添加如下代碼:

<?php        class Book extends AppModel      {         var $name = 'Book';      }      ?>

8,現(xiàn)在在 /app/controllers文件夾下另外創(chuàng)建一個PHP文件,將其命名為books_controller.php

9,在books_controller.php文件中添加如下代碼:

<?php     class BooksController extends AppController {        var $name = 'Books';        var $scaffold;     }     ?>

10,現(xiàn)在,使用瀏覽器打開這個地址http://localhost/data-access/books/,添加一些測試數(shù)據(jù)。

怎么回事?

首先,我們創(chuàng)建了一個名為data-access的數(shù)據(jù)庫。接著,我們在這個數(shù)據(jù)庫中創(chuàng)建了一個名為books的數(shù)據(jù)庫表。books表的結(jié)構(gòu)如下:

怎么使用CakePHP腳手架工具設(shè)置數(shù)據(jù)庫和模型

我們這里使用的數(shù)據(jù)庫表名和字段名并不是隨意選取的。CakePHP對于數(shù)據(jù)庫表和字段的命名都有確定的命名規(guī)則:

◆表名必須是復(fù)數(shù)形式的英文小寫(像boooks,catergories,articles等等)

◆如果需要使用兩個以及兩個以上的單詞來對表和字段進(jìn)行命名,我們需要使用下劃線來把單詞分開(像author_name,user_photos等)

◆數(shù)據(jù)庫表中的字段必須有一個名為id的主鍵

在我們這個例子中,我們使用的數(shù)據(jù)庫表名books是英文復(fù)數(shù)形式。我們也有一個名為id的主鍵。我們需要使用兩個單詞來對表的第5個字段進(jìn)行命名——author_name,我們使用下劃線來連接這兩個單詞。

[ 如果你之前寫過PHP/MySQL的應(yīng)用程序,那么你可能會以你自己喜歡的方式對數(shù)據(jù)庫表進(jìn)行命名,然后寫SQL語句來訪問這些數(shù)據(jù)庫。但是,當(dāng)你使用CakePHP時,你應(yīng)該遵循它的命名規(guī)則。雖然我們不一定要完全遵循它的命名規(guī)則,但是對規(guī)則的遵守會幫助我們省下不少寶貴的時間。此外,堅持這一規(guī)則通常都能提高代碼的質(zhì)量和可維護(hù)性。通過本書的這一章節(jié)和其他章節(jié),我們將會看到CakePHP的這些規(guī)則是如何幫我們以一種更便捷更酷的方式完成事情的。 ]

我們的數(shù)據(jù)庫已經(jīng)準(zhǔn)備就緒,我們已經(jīng)對我們的應(yīng)用做好配置,并且連接到數(shù)據(jù)庫了。在第三章中,我們已經(jīng)學(xué)習(xí)過如何對我們的應(yīng)用進(jìn)行配置,以便連接的數(shù)據(jù)庫。在完成數(shù)據(jù)庫配置后,我們開始為我們的模型編寫代碼。

我們已經(jīng)知道,在CakePHP中,模型類都通常都被用來訪問對應(yīng)的數(shù)據(jù)庫表,因此,要訪問books表,我們需要創(chuàng)建對應(yīng)的模型類。CakePHP對于模型類和模型文件有固定的命名規(guī)則。具體規(guī)則如下:

◆模型的文件名必須用對應(yīng)數(shù)據(jù)庫的表名來命名,但是是單數(shù)形式。比如,如果你的數(shù)據(jù)表名是user_photos,那么模型的文件名就應(yīng)該是user_photo.php

◆模型的類名應(yīng)該是模型文件名的駱駝拼寫形式( CamelCased form)。如果我們的模型文件名稱是user_photo.php,那么模型的類名就應(yīng)該是UserPhoto

◆模型文件都放置在 /app/models目錄下。

[ CakePHP會通過命名規(guī)則自動了解到哪個模型類對應(yīng)哪個數(shù)據(jù)庫的表。在我們這個例子中,我們模型的類名稱Book暗示它對應(yīng)的數(shù)據(jù)庫表是books表。看,多省事,我們無需對此做什么手動設(shè)置。 ]

然后我們創(chuàng)建了一個名為Book的模型類,然后將類文件命名為book.php,并將其保存在 /app/models 文件夾下,因為我們正確的遵循了命名規(guī)則,CakePHP現(xiàn)在會自動檢測到我們的Book類是數(shù)據(jù)庫表books所對應(yīng)的模型類。

一旦我們創(chuàng)建好數(shù)據(jù)庫表和模型,我們就能使用CakePHP的腳手架功能創(chuàng)建出一個能進(jìn)行數(shù)據(jù)庫基本操作(比如,添加,編輯,和刪除操作)的簡單應(yīng)用程序來。在對Book模型使用腳手架功能之間,我們首先需要創(chuàng)建一個相關(guān)的控制器類BooksController。然后我們在控制器類里面添加了一行變量$scaffold 。這一短短的代碼將會為數(shù)據(jù)庫表books所對應(yīng)的Book模型搭建一個腳手架——沒錯,就是這么簡單!

訪問這個鏈接 http://localhost/data-access/books/,CakePHP腳手架功能已經(jīng)為我們創(chuàng)建了一個帶有添加,讀取,更新和刪除功能的基本應(yīng)用。在添加一些數(shù)據(jù)后,頁面的模樣應(yīng)該如下圖:

怎么使用CakePHP腳手架工具設(shè)置數(shù)據(jù)庫和模型

[ 創(chuàng)建一個腳手架所需要的東西包括一個數(shù)據(jù)庫表,對應(yīng)模型以及控制器,以及一些規(guī)則。一旦萬事俱備,我們只需在控制器中設(shè)置一個$scaffold屬性就可以創(chuàng)建一個基本上能運行的應(yīng)用來! ]

腳手架功能是我們用來測試數(shù)據(jù)庫表的一個快捷方式,在開發(fā)周期的早期階段,對數(shù)據(jù)庫表的改動通常都比較頻繁。但是需要記住的是,腳手架功能只是一種臨時的手段。它也不俱備完全的靈活性。在專門應(yīng)用程序中,我們都需要定制自己的邏輯和用戶界面。要實現(xiàn)這點,我們拆掉腳手架,然后添加上我們自己的一些代碼。我們將很快看到如何編寫一些俱備 CRUD(創(chuàng)建、讀取、更新、刪除)功能的實際代碼。

關(guān)于怎么使用CakePHP腳手架工具設(shè)置數(shù)據(jù)庫和模型問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI