2013-07-02 68 views
2

試圖學習PHP MVC。到目前爲止,到目前爲止這麼好。我有這樣的功能在我./controllers/index.phpPHP MVC呼叫控制器功能從視圖

<?php 
class Index extends Controller { 

    function __construct() { 
     parent::__construct(); 
    } 

    function showFeeds() { 
     return 'done'; 
    } 

} 
?> 

我知道如何調用模型類和模型類運行showFeed()。我的問題是如何在我的./views/index.php上打印'done'。那有什麼選擇。

我已經嘗試了下面列出的其中一些。但沒有運氣。

  1. 父:: showFeeds()
  2. $這 - >控制器 - > showFeeds();
+0

爲什麼會您查看呼叫控制器上的方法? –

+0

哪個框架是這個?codeigniter? –

+0

我知道主意。我做了我認爲正確的事情。我錯了嗎?有沒有其他方法可以在我的./view/index.php中打印showFeed()返回值 – AmilaDG

回答

3

最後我固定我的問題

PAGE:/controllers/index.php

<?php 
class Index extends Controller { 

    function __construct() { 
     parent::__construct(); 
    } 

    function showFeeds() { 
     return 'done'; 
    } 

} 
?> 

PAGE:./views/index/index.php

<?php 
$_index = new Index(); 
$params = $_index -> showFeeds(); 
?> 
2

你最好使用PHP框架MVC

一些框架是:

CodeigniterZendCakePHP

這些框架使用MVC自己的語法,所以真的簡單易用。 我個人使用笨,而且這也很容易

例如,在笨,你可以這樣做:

控制器:

function showFeed(){ 

$data['done'] = 'Done'; 
$this->load->view('yourview', $data); 

} 

查看:

<?php echo $done; ?> 
+0

真的很感謝你的幫助,但它給了我這個錯誤。 致命錯誤:調用第23行C:\ xampp \ htdocs \ framework \ views \ index \ index.php中非成員函數上的成員函數showFeeds() – AmilaDG

+0

當沒有名爲showFeeds的模型時)。創建一個名爲showFeeds的模型函數,並且錯誤消失。 –

0

在MVC中,一般說控制器應該處理模型,獲取視圖,設置視圖的數據,然後調用視圖或返回它來呈現視圖。

你要做的是從視圖回調控制器。我建議將showFeeds()放入模型中。在控制器中,調用模型以獲得showFeeds()的結果並將值傳遞給視圖,最後調用該視圖進行渲染。

0

通常,您的控制器將生成視圖。要生成,視圖將需要通常是要顯示的數據的參數。

例如與一個HelloWorld控制器,概念是這樣的:

class HelloWorldController extends Controller { 
    function indexAction($name) { // The index page of your site for example 
     return $this->getView()->render('helloworld.html', array('name' => $name)) 
    } 
} 

然後在你看來,你將打印類似「你好」。 $ name這是您在渲染函數中傳遞的名稱。