2013-07-02 44 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这是您在渲染函数中传递的名称。