2011-11-04 80 views
0

Hy guys,我開始學習蛋糕php框架(版本2.0),當我讀完博客教程時,我試圖做一些實驗,特別是我的問題是「是否可以在模型中創建一個查詢,然後在控制器中執行它並最終以這種方式在視圖中顯示查詢結果?在控制器中使用查詢顯示數據 - CakePHP框架

這是文件post.php(模型):

<?php 

class Post extends AppModel { 
    public $name='Post'; 
} 

?> 

這是posts_controller(控制器):

<?php 
class PostsController extends AppController { 
    public $helpers = array ('Html','Form'); 
    public $name = 'Posts'; 
    public $name = 'Articles'; 

    function index() { 
     //$this->set('posts', $this->Post->find('all')); 
     $sql="select * from posts"; 
     $this->set('Articles',$this->Post->query($sql)); 
    } 
} 
?> 

問題是如果我第二次申報$ name我從cake中獲得一個錯誤,在這種情況下,這是設置包含帖子數組的變量的正確名稱(數據庫與博客相同教程),第二個問題是如何顯示從index.ctp中查詢獲得的數據?在例子中,我以這種方式

<?php foreach ($posts as $post): ?> 

,並獲得重複的元素我必須寫

<?php echo $post['Post']['title']?> 

但在我的情況?

是否有可能聲明一個函數返回模型中的查詢結果,然後在控制器中調用它並將數據顯示在someview.ctp中?

回答

0

問題1:$name應該是控制器本身的名稱,不知道你想用2個名字做什麼。只要堅持「帖子」。

問題2: 你這裏很可能只是迷惑事項參照員額的文章..

爲你做

最好的辦法是改變這樣的:

$this->set('Articles',$this->Post->query($sql)); 

$this->set('posts',$this->Post->query($sql)); 

然後模板中的引用將工作相同。這裏發生的事情是調用$this->set方法,使數據可以在名爲$ posts的變量中訪問模板。所以你目前有:

$this->set('Articles',$this->Post->query($sql)); 

將使該數據在一個名爲$Articles變量模板訪問。

+0

問題1:忽略'$ name'(參見[這個問題](http://stackoverflow.com/questions/8045324/does-cakephp-2-0-still-need-name-declared-in-該模型)) :) – deizel

相關問題