尝试学习PHP MVC。到目前为止一切都很好。我的身体里有这样的功能/controllers/index.php
<?php
class Index extends Controller {
function __construct() {
parent::__construct();
}
function showFeeds() {
return 'done';
}
}
?>
我知道如何调用模型类并在模型类上运行showFeed()。我的问题是如何在我的上打印"完成"/views/index.php。有什么选项。
我已经试过下面列出的一些。但没有运气。
- 父级::showFeeds()
- $this->controller->showFeeds()
最后我解决了的问题
页码:/controllers/index.php
<?php
class Index extends Controller {
function __construct () {
parent::__construct ();
}
function showFeeds () {
return 'done';
}
}
?>
页码:/views/index/index.php
<?php
$_index = new Index ();
$params = $_index -> showFeeds ();
?>
您最好使用MVC 的PHP框架
一些框架是:
Codeigniter、Zend和CakePHP
这些框架使用MVC和它们自己的语法,所以使用起来非常简单。我个人使用Codeigniter,它相当容易
例如,在代码点火器中,您可以这样做:
控制器:
function showFeed(){
$data['done'] = 'Done';
$this->load->view('yourview', $data);
}
视图:
<?php echo $done; ?>
在MVC中,通常来说,控制器应该处理模型,获取视图,设置视图的数据,然后调用视图或返回视图来渲染视图。
您要做的是从视图回调到控制器。我建议将showFeeds()
移动到模型中。在控制器中,调用模型以获得showFeeds()
的结果并将值传递给视图,最后调用视图进行渲染。
通常,您的控制器将生成视图。要生成视图,需要参数,这些参数通常是要显示的数据。
例如,对于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,它是您在渲染函数中传递的名称。