来自View的PHP MVC调用控制器功能

时间:2013-07-02 12:33:32

标签: php scope visibility

尝试学习PHP MVC。到目前为止一直很好,直到这一刻。我在./controllers/index.php

中有这样的功能
<?php
class Index extends Controller {

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

    function showFeeds() {
        return 'done';
    }

}
?>

我知道如何调用模型类并在模型类上运行showFeed()。我的问题是如何在我的./views/index.php上打印'完成'。有什么选择。

我已经尝试了下面列出的一些。但没有运气。

  1. 父:: showFeeds()
  2. $这 - &GT;控制器 - &GT; showFeeds();

4 个答案:

答案 0 :(得分: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 ();
?>

答案 1 :(得分:2)

您最好使用适用于MVC的PHP Framework

一些框架是:

CodeigniterZendCakePHP

这些框架使用MVC和它们自己的语法,因此使用起来非常简单。 我个人使用Codeigniter,这很容易

例如,在codeigniter中你可以这样做:

控制器:

function showFeed(){

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

}

查看:

<?php echo $done; ?>

答案 2 :(得分:0)

在MVC中,一般来说控制器应该处理模型,获取视图,设置视图的数据然后调用视图或返回它以呈现视图。

您要做的是从视图中回调控制器。我建议将showFeeds()移到模型中。在控制器中,调用模型以获取showFeeds()的结果并将值传递给视图,最后调用视图进行渲染。

答案 3 :(得分: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))
    }
}

然后在您的视图中,您将打印“Hello”之类的内容。 $ name,这是您在渲染函数中传递的名称。