自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā) 后端
使用CakePHP的腳手架能夠創(chuàng)建出一個能進行數(shù)據(jù)庫基本操作的簡單應用。本文介紹CakePHP中的數(shù)據(jù)庫和模型設置。

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

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

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

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

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

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

  1. CREATE DATABASE `data-access`; 

2,通過執(zhí)行下面的SQL語句來創(chuàng)建一個“books”表:

  1. USE `data-access`;   
  2. CREATE TABLE `books` (  
  3. `id` int( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,  
  4. `isbn` varchar( 10 ) NOT NULL ,  
  5. `title` varchar( 127 ) NOT NULL ,  
  6. `description` text NOT NULL ,  
  7. `author_name` varchar( 127 ) NOT NULL 
  8. )  
  9.  

3,將一份全新的CakePHP文件夾放置到你的網(wǎng)頁根目錄下。將Cake的文件夾重命名為data-access.

4,進入Cake安裝文件夾下的/app/config目錄。你找到一個名為 database.php.default的文件。將這個文件重命名為database.php。使用你喜歡的編輯器打開它。編輯文件中的$default數(shù)組以配置好你的數(shù)據(jù)庫。在編輯好之后,它看起來應該跟下面這段內(nèi)容差不多

  1. var $default = array(  
  2.          'driver' => 'mysql',  
  3.          'persistent' => false,  
  4.          'host' => 'localhost',  
  5.          'port' => '',  
  6.          'login' => 'username',  
  7.          'password' => 'password',  
  8.          'database' => 'data-access',  
  9.          'schema' => '',  
  10.          'prefix' => '',  
  11.          'encoding' => '' 
  12.       );  

5,現(xiàn)在,在你的瀏覽器中輸入如下地址http://localhost/data-access。瀏覽器會顯示以一個“CakePHP已經(jīng)能夠與數(shù)據(jù)庫進行連接”的信息,我們就此可以確認數(shù)據(jù)庫的配置非常***。如果配置不對的話,它會顯示一個"Cake無法與數(shù)據(jù)進行連接”的信息。如果碰到這種情況,又很有可能是你提供的數(shù)據(jù)庫信息不正確。立刻返回到第四步,使用正確的數(shù)據(jù)庫名稱,數(shù)據(jù)庫用戶名和密碼來填寫$default數(shù)組

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

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

  1. <?php    
  2.     class Book extends AppModel  
  3.     {  
  4.        var $name = 'Book';  
  5.     }  
  6.     ?>  
  7.  

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

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

  1. <?php  
  2.    class BooksController extends AppController {  
  3.       var $name = 'Books';  
  4.       var $scaffold;  
  5.    }  
  6.    ?>  

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é)構如下:

books表的結(jié)構 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CakePHP的腳手架功能 

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

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

【編輯推薦】

  1. PHP老手談PHP和Python的基礎特性
  2. 打造PHP的無限分級類(完整代碼及注釋)
  3. 9個開發(fā)人員應該知道的PHP庫
  4. PHP命名空間規(guī)則解析及高級功能
  5. 再談Web開發(fā):PHP,Java和.NET的過去,現(xiàn)在和未來
責任編輯:yangsai 來源: 譯言
相關推薦

2018-08-30 16:08:37

Node.js腳手架工具

2018-06-11 14:39:57

前端腳手架工具node.js

2021-05-21 05:22:52

腳手架工具項目

2021-01-07 05:34:07

腳手架JDK緩存

2009-09-21 17:06:26

CakePHP模型檢索數(shù)據(jù)

2021-03-09 17:11:09

數(shù)據(jù)庫腳手架開發(fā)

2021-11-08 09:35:09

Vue代碼前端

2016-08-10 14:59:41

前端Javascript工具

2022-12-12 08:56:45

Vite3Vite

2016-09-07 15:35:06

VueReact腳手架

2021-12-23 10:35:32

SpringCloud腳手架架構

2014-08-15 09:36:06

2022-01-14 14:09:11

腳手架代碼自定義

2020-03-20 08:32:41

物聯(lián)網(wǎng)腳手架傳感器

2020-06-29 11:35:02

Spring BootJava腳手架

2021-05-13 17:02:38

MDC腳手架日志

2019-12-25 15:20:48

前端腳手架命令

2022-04-24 11:33:47

代碼管理工程

2023-11-21 17:36:04

OpenFeignSentinel

2020-08-19 08:55:47

Redis緩存數(shù)據(jù)庫
點贊
收藏

51CTO技術棧公眾號