成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用CakePHP模型檢索數據

開發 后端
在CakePHP中有一些內置的模型方法(model methods),這些模型方法可以幫助開發者從數據庫的表中輕松檢索數據。本文通過實例介紹了這一過程的實現。

下面介紹如何使用CakePHP模型來檢索數據。有關CakePHP模型的配置,可參考之前一篇文章

檢索數據

在CakePHP中有一些內置的模型方法(model methods),這些模型方法可以幫助開發者從數據庫的表中輕松檢索數據。我們將會在之前創建的Book模型身上試驗其中一些函數的用法。

使用模型來檢索數據

在很多情況下,我們需要找出符合某一條件的所有數據。在CakePHP中,對數據庫進行查詢操作都是通過模型的方法來完成的。CakePHP的模型都有一些內置的方法,這些方法可以讓開發者不用費多大力氣就可以輕松執行這類查詢操作。在下面這一部分,我們將會看到一個循序漸進的實例,學習如何在數據庫表中檢索數據。

動手時間:使用模型來檢索數據

1,在BooksController中去除掉腳手架,然后在控制器中添加一個index操作,代碼如下

  1. < ?php  
  2.     class BooksController extends AppController {  
  3.        var $name = 'Books';  
  4.     function index() {  
  5.        $books = $this->Book->find('all',   
  6.                  array(  
  7.                         'fields' => array'fields' => array(  
  8.                                           'Book.isbn',  
  9.                                           'Book.title',  
  10.                                           'Book.author_name' 
  11.                                    ),  
  12.                         'order' => 'Book.title ASC' 
  13.                         )  
  14.                                    );      
  15.        $this->set('books'$books);  
  16.                      }  
  17.     }  
  18.     ?>  
  19.  

2,為/books/index操作創建一個視圖文件(視圖文件的位置:/app/views/books/ index.ctp)

  1. < table> 
  2.   < thead> 
  3.     < th>ISBN< /th>< th>Title< /th>< th>Author< /th> 
  4.   < /thead> 
  5.   < ?php foreach($books as $book): ?> 
  6.   < tr> 
  7.     < td>< ?php echo $book['Book']['isbn'] ?>< /td> 
  8.     < td>< ?php echo $book['Book']['title'] ?>< /td> 
  9.     < td>< ?php echo $book['Book']['author_name'] ?>< /td> 
  10.   < /tr> 
  11.   < ?php endforeach; ?> 
  12. < /table> 

3,現在在瀏覽器中打開如下鏈接,你會看到從一個數據庫表中檢索到并顯示出來的所有書的列表。

http://localhost/data-access/books/

怎么回事?

首先,我們在BooksController中移除了腳手架,然后,我們在其中添加了一個名為index的新操作。通過在index()操作中調用BooksController的屬性 $this->Book ,我們可以訪問對應的模型Book。在CakePHP中,對應模型類的實例(instance)在控制器中會作為控制器的屬性供人使用。我們在index()操作中添加如下代 碼:

  1. $books = $this->Book->find('all',   
  2.              array(  
  3.                     'fields' => array(  
  4.                                       'Book.isbn',  
  5.                                       'Book.title',  
  6.                                       'Book.author_name' 
  7.                                 ),  
  8.                     'order' => 'Book.title ASC' 
  9.               )  
  10.       );  
  11.  

我們已經調用了Book模型中帶有參數的內置方法find(),然后將返回的結果存儲在一個名為$books的變量中。第一個參數all指明了我們想從books表中調取所有記錄。
 
我們可以通過定義第二個參數中的一些鍵(像條件,排序,限制)來對find()查詢返回的結果進行調整。我們將在后一部分更為詳細的學習這一非常實用的方法,

第二個參數包含一個關聯數組,它有兩個鍵:字段和排序。字段鍵也是一個數組,它是用來指明find()查詢所需要調取的 具體字段。我們只對ISBN書號,書名,以及作者感興趣。因此字段鍵的鍵值被設置成了一個只包含這些字段名稱的數組。第二個鍵order是用來指明查詢結果的排序方向。我們把它的鍵值設置成了Book.title ASC,這是告訴模型按照書名的升序來排序。
 
所有模型類都會從他們的父類繼承一些內置的方法。這些內置方法會讓開發者的工作輕松上許多,因為他們再也不用戶書寫SQL語句了。所有基本的CRUD功能 (創建,讀取,更新和刪除)以及其他一些功能已經包含在內,我們只需要知道如何使用他們即可。代碼看起來會干凈上許多,而與數據庫打交道不再是一件煩人的 重復性工作。這些簡潔而智能的功能會替我們書寫SQL查詢語句。

  1. Array  
  2. (  
  3.     [0] => Array  
  4.         (  
  5.             [Book] => Array  
  6.                 (  
  7.                     [isbn] => 1847192971  
  8.                     [title] => Building Powerful and Robust   
  9.                                                       with D  
  10.                    [author_name] => David Mercer  
  11.                 )  
  12.         )  
  13.     [1] => Array  
  14.         (  
  15.             [Book] => Array  
  16.                 (  
  17.                     [isbn] => 1847192823  
  18.                     [title] => Mastering Joomla! 1.5 Extensi  
  19.                                                Framework Dev  
  20.                  [author_name] => James Kennard  
  21.                 )  
  22.         )  
  23.  ...  
  24.  ...  
  25. )  
  26.  

在我們的視圖文件中,我們對$books數組進行了迭代循環操作,將所有我們需要的信息顯示出來。現在,訪問http://localhost/data-access/books/,我們會看到下面這樣一個頁面。

Books頁面 

以上便實現了使用CakePHP模型進行數據檢索。

【編輯推薦】

  1. 使用CakePHP腳手架工具設置數據庫和模型
  2. PHP老手談PHP和Python的基礎特性
  3. 打造PHP的無限分級類(完整代碼及注釋)
  4. 9個開發人員應該知道的PHP庫
  5. PHP命名空間規則解析及高級功能
責任編輯:yangsai 來源: 譯言
相關推薦

2009-09-16 15:05:58

CakePHP腳手架

2009-11-13 10:31:07

ADO.NET Dat

2009-09-07 17:32:14

LINQ檢索數據

2011-04-26 10:16:44

nutch

2012-03-14 11:38:16

ibmdw

2024-12-23 11:31:05

大模型檢索人工智能

2025-03-10 08:00:00

RAG檢索Reranker

2010-10-14 09:24:08

Ruby on RaiCakePHP

2023-08-11 10:58:04

深度學習自然語言檢索增強

2024-01-08 15:35:34

2023-08-02 08:02:30

Redis數據原生方法

2023-02-23 07:46:48

學習模型數據倉庫

2024-05-23 12:57:59

2011-06-02 14:51:00

SQL Server

2025-04-29 09:15:49

AI數據模型

2025-03-28 08:00:00

RAG文本檢索大模型

2009-07-07 09:24:37

LINQ檢索

2010-07-16 15:42:32

SQL Server

2010-05-04 12:18:43

Oracle Text

2009-12-31 09:18:23

ADO.NET對象模型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本网站在线看 | 男女污污动态图 | 成人在线精品 | 成人在线视 | 99久久国产 | 亚洲v日韩v综合v精品v | 一区二区精品视频 | 91精品亚洲 | 自拍偷拍中文字幕 | 国产日韩欧美 | 久久久精品网站 | 久久蜜桃av一区二区天堂 | 久久美国 | 亚洲精品一区二区三区丝袜 | 91精品国产91久久综合桃花 | 婷婷色婷婷| 四虎最新地址 | 日韩av黄色 | 亚洲视频中文字幕 | 日本中文字幕视频 | 国产激情91久久精品导航 | 午夜爱爱毛片xxxx视频免费看 | 久久久久久亚洲精品 | 国产伦精品一区二区三区高清 | 99久久久久久久久 | 日韩视频免费看 | 婷婷精品 | 四虎免费视频 | 天天干免费视频 | 97精品超碰一区二区三区 | 91美女在线观看 | 波多野结衣一区二区 | 成人夜晚看av | 日本免费一区二区三区四区 | 日本成人福利视频 | 国产美女免费视频 | 精品国产精品一区二区夜夜嗨 | 人人干人人干人人干 | 精区3d动漫一品二品精区 | 亚洲欧美综合精品另类天天更新 | 国产精品视频中文字幕 |