您好,登錄后才能下訂單哦!
怎么使用CakePHP腳手架工具設置數據庫和模型,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
CakePHP腳手架工具主要是用來設置數據庫和模型的。下面介紹這個CakePHP腳手架工具的操作原理及方法。
我們已經知道,模型類通常都是用來與數據庫進行互動的。在CakePHP中,一個模型類通常都對應數據庫中的莫個表。所有對表進行的數據庫操作都是通過對應的模型類來實施的。CakePHP的模型與數據庫表之間的對應關系無需設置。相反,CakePHP使用了一些簡單的命名規則來實現這一效果,在這一部分,我們將了解到如何為數據庫中的表的創建對已的模型類。CakePHP提供了一個名為"腳手架"工具來幫助我們檢查先前創建好的模型和數據庫表。我們也將了解到如何使用“腳手架”功能完成這一工作。
為數據庫中的表創建模型
在了解模型類是如何與數據庫表進行互動之前,我們首先要創建一個數據庫表。在接下來這一部分中,我們首先將創建一個數據庫表,然后了解如何為這個表創建一個模型類。然后我們也會使用腳手架功能對新創建的模型和數據表進行一個快速的測試。
動手時間:創建一個數據庫表以及對應的模型
1,在MySQL命令提示行中,我們輸入如下數據庫命令來創建一個名為data-access的新數據庫。
CREATE DATABASE `data-access`;
2,通過執行下面的SQL語句來創建一個“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文件夾放置到你的網頁根目錄下。將Cake的文件夾重命名為data-access.
4,進入Cake安裝文件夾下的/app/config目錄。你找到一個名為 database.php.default的文件。將這個文件重命名為database.php。使用你喜歡的編輯器打開它。編輯文件中的$default數組以配置好你的數據庫。在編輯好之后,它看起來應該跟下面這段內容差不多
var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'port' => '', 'login' => 'username', 'password' => 'password', 'database' => 'data-access', 'schema' => '', 'prefix' => '', 'encoding' => '' );
5,現在,在你的瀏覽器中輸入如下地址http://localhost/data-access。瀏覽器會顯示以一個“CakePHP已經能夠與數據庫進行連接”的信息,我們就此可以確認數據庫的配置非常***。如果配置不對的話,它會顯示一個"Cake無法與數據進行連接”的信息。如果碰到這種情況,又很有可能是你提供的數據庫信息不正確。立刻返回到第四步,使用正確的數據庫名稱,數據庫用戶名和密碼來填寫$default數組
6,在/app/models文件夾下創建一個新的PHP文件,將其命名為book.php
7,在book.php文件中,添加如下代碼:
<?php class Book extends AppModel { var $name = 'Book'; } ?>
8,現在在 /app/controllers文件夾下另外創建一個PHP文件,將其命名為books_controller.php
9,在books_controller.php文件中添加如下代碼:
<?php class BooksController extends AppController { var $name = 'Books'; var $scaffold; } ?>
10,現在,使用瀏覽器打開這個地址http://localhost/data-access/books/,添加一些測試數據。
怎么回事?
首先,我們創建了一個名為data-access的數據庫。接著,我們在這個數據庫中創建了一個名為books的數據庫表。books表的結構如下:
我們這里使用的數據庫表名和字段名并不是隨意選取的。CakePHP對于數據庫表和字段的命名都有確定的命名規則:
◆表名必須是復數形式的英文小寫(像boooks,catergories,articles等等)
◆如果需要使用兩個以及兩個以上的單詞來對表和字段進行命名,我們需要使用下劃線來把單詞分開(像author_name,user_photos等)
◆數據庫表中的字段必須有一個名為id的主鍵
在我們這個例子中,我們使用的數據庫表名books是英文復數形式。我們也有一個名為id的主鍵。我們需要使用兩個單詞來對表的第5個字段進行命名——author_name,我們使用下劃線來連接這兩個單詞。
[ 如果你之前寫過PHP/MySQL的應用程序,那么你可能會以你自己喜歡的方式對數據庫表進行命名,然后寫SQL語句來訪問這些數據庫。但是,當你使用CakePHP時,你應該遵循它的命名規則。雖然我們不一定要完全遵循它的命名規則,但是對規則的遵守會幫助我們省下不少寶貴的時間。此外,堅持這一規則通常都能提高代碼的質量和可維護性。通過本書的這一章節和其他章節,我們將會看到CakePHP的這些規則是如何幫我們以一種更便捷更酷的方式完成事情的。 ]
我們的數據庫已經準備就緒,我們已經對我們的應用做好配置,并且連接到數據庫了。在第三章中,我們已經學習過如何對我們的應用進行配置,以便連接的數據庫。在完成數據庫配置后,我們開始為我們的模型編寫代碼。
我們已經知道,在CakePHP中,模型類都通常都被用來訪問對應的數據庫表,因此,要訪問books表,我們需要創建對應的模型類。CakePHP對于模型類和模型文件有固定的命名規則。具體規則如下:
◆模型的文件名必須用對應數據庫的表名來命名,但是是單數形式。比如,如果你的數據表名是user_photos,那么模型的文件名就應該是user_photo.php
◆模型的類名應該是模型文件名的駱駝拼寫形式( CamelCased form)。如果我們的模型文件名稱是user_photo.php,那么模型的類名就應該是UserPhoto
◆模型文件都放置在 /app/models目錄下。
[ CakePHP會通過命名規則自動了解到哪個模型類對應哪個數據庫的表。在我們這個例子中,我們模型的類名稱Book暗示它對應的數據庫表是books表。看,多省事,我們無需對此做什么手動設置。 ]
然后我們創建了一個名為Book的模型類,然后將類文件命名為book.php,并將其保存在 /app/models 文件夾下,因為我們正確的遵循了命名規則,CakePHP現在會自動檢測到我們的Book類是數據庫表books所對應的模型類。
一旦我們創建好數據庫表和模型,我們就能使用CakePHP的腳手架功能創建出一個能進行數據庫基本操作(比如,添加,編輯,和刪除操作)的簡單應用程序來。在對Book模型使用腳手架功能之間,我們首先需要創建一個相關的控制器類BooksController。然后我們在控制器類里面添加了一行變量$scaffold 。這一短短的代碼將會為數據庫表books所對應的Book模型搭建一個腳手架——沒錯,就是這么簡單!
訪問這個鏈接 http://localhost/data-access/books/,CakePHP腳手架功能已經為我們創建了一個帶有添加,讀取,更新和刪除功能的基本應用。在添加一些數據后,頁面的模樣應該如下圖:
[ 創建一個腳手架所需要的東西包括一個數據庫表,對應模型以及控制器,以及一些規則。一旦萬事俱備,我們只需在控制器中設置一個$scaffold屬性就可以創建一個基本上能運行的應用來! ]
腳手架功能是我們用來測試數據庫表的一個快捷方式,在開發周期的早期階段,對數據庫表的改動通常都比較頻繁。但是需要記住的是,腳手架功能只是一種臨時的手段。它也不俱備完全的靈活性。在專門應用程序中,我們都需要定制自己的邏輯和用戶界面。要實現這點,我們拆掉腳手架,然后添加上我們自己的一些代碼。我們將很快看到如何編寫一些俱備 CRUD(創建、讀取、更新、刪除)功能的實際代碼。
關于怎么使用CakePHP腳手架工具設置數據庫和模型問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。