我有PHP / MVC的问题。 这是我的索引控制器。
<?php
class Index extends Controller {
function __construct() {
parent::__construct();
}
function index() {
$this->view->render('header');
$this->view->render('index/index');
$this->view->render('footer');
}
public function test(){
$this->model->test();
}
?>
这就是索引模型。
<?php
class Index_Model extends Model{
public function __construct() {
parent::__construct();
}
public function test() {
return $this->db->select('SELECT text FROM test');
}
}
}
如何在“索引视图”中使用它?
答案 0 :(得分:1)
当然你可以从你的视图中调用控制器和模型方法(如果不可能那么你需要在你的视图中放置一切)。 MVC的想法不是完全分离(有些人错误地认为),而是逻辑分离。这意味着可以在MVC拱的不同部分之间传递数据;我们的想法是你要确保每个部分的逻辑都是适合该部分的逻辑。
许多人会为了寻找一些愚蠢的理想而过度复杂化。我将一起摆脱控制器方法并直接在视图中引用模型方法,如果您正在做的是抓取一些数据以在视图中显示。没有理由浪费时间和精力将这些结果传递给控制器,只是为了传递回视图。一旦你建立了一个真正庞大的网站并看看你将要花费的所有努力(然后再保留所有这些),你会感谢我的建议。
我的理念是应该使用控制器(控制应用程序逻辑)。如果要显示一个侧栏,其中包含与控制器无关的最新帖子的列表,因此不应向其添加任何代码。省去一些头痛并从视图中调用模型。最后,如果你这样做,你的代码会更有意义。
回答您的问题:您无法在视图中使用您的控制器方法,因为它不会返回任何内容。