日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用CakePHP模型檢索數(shù)據(jù)

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

檢索數(shù)據(jù)

在CakePHP中有一些內(nèi)置的模型方法(model methods),這些模型方法可以幫助開發(fā)者從數(shù)據(jù)庫的表中輕松檢索數(shù)據(jù)。我們將會(huì)在之前創(chuàng)建的Book模型身上試驗(yàn)其中一些函數(shù)的用法。

使用模型來檢索數(shù)據(jù)

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

動(dòng)手時(shí)間:使用模型來檢索數(shù)據(jù)

1,在BooksController中去除掉腳手架,然后在控制器中添加一個(gè)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操作創(chuàng)建一個(gè)視圖文件(視圖文件的位置:/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,現(xiàn)在在瀏覽器中打開如下鏈接,你會(huì)看到從一個(gè)數(shù)據(jù)庫表中檢索到并顯示出來的所有書的列表。

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

怎么回事?

首先,我們在BooksController中移除了腳手架,然后,我們在其中添加了一個(gè)名為index的新操作。通過在index()操作中調(diào)用BooksController的屬性 $this->Book ,我們可以訪問對應(yīng)的模型Book。在CakePHP中,對應(yīng)模型類的實(shí)例(instance)在控制器中會(huì)作為控制器的屬性供人使用。我們在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.  

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

第二個(gè)參數(shù)包含一個(gè)關(guān)聯(lián)數(shù)組,它有兩個(gè)鍵:字段和排序。字段鍵也是一個(gè)數(shù)組,它是用來指明find()查詢所需要調(diào)取的 具體字段。我們只對ISBN書號(hào),書名,以及作者感興趣。因此字段鍵的鍵值被設(shè)置成了一個(gè)只包含這些字段名稱的數(shù)組。第二個(gè)鍵order是用來指明查詢結(jié)果的排序方向。我們把它的鍵值設(shè)置成了Book.title ASC,這是告訴模型按照書名的升序來排序。
 
所有模型類都會(huì)從他們的父類繼承一些內(nèi)置的方法。這些內(nèi)置方法會(huì)讓開發(fā)者的工作輕松上許多,因?yàn)樗麄冊僖膊挥脩魰鴮慡QL語句了。所有基本的CRUD功能 (創(chuàng)建,讀取,更新和刪除)以及其他一些功能已經(jīng)包含在內(nèi),我們只需要知道如何使用他們即可。代碼看起來會(huì)干凈上許多,而與數(shù)據(jù)庫打交道不再是一件煩人的 重復(fù)性工作。這些簡潔而智能的功能會(huì)替我們書寫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數(shù)組進(jìn)行了迭代循環(huán)操作,將所有我們需要的信息顯示出來。現(xiàn)在,訪問http://localhost/data-access/books/,我們會(huì)看到下面這樣一個(gè)頁面。

以上便實(shí)現(xiàn)了使用CakePHP模型進(jìn)行數(shù)據(jù)檢索。


當(dāng)前題目:使用CakePHP模型檢索數(shù)據(jù)
新聞來源:http://m.5511xx.com/article/dhccghe.html