我使用没有任何框架的PHP MVC模式,现在我有一个视图文件,其中有一些数据要插入其中,这将被保存到数据库中。现在我的问题是如何将视图文件连接到控制器或模型。
答案 0 :(得分:3)
视图不应该向数据库保存任何内容,这是模型的工作。该视图仅用于渲染。通常,您将在控制器中实例化一个视图对象,将要传递的数据传递给它,然后调用一些渲染方法。也许是这样的:
$view = new View();
$view->setTemplate('/path/to/file');
$view->setValues(array(
'key1' => 'value1',
'key2' => 'value2',
));
$view->render();
如果要将数据保存在数据库中,则与视图无关。你可能有这样的事情:
$model = new Model();
$model->setValues(array(
'key1' => 'value1',
'key2' => 'value2',
));
$model->save();
$view = new View();
$view->setTemplate('path/to/file');
$view->setValues($model->getValues());
$view->render();
答案 1 :(得分:0)
Controler可以包含视图和模型文件。
当url调用controller时,使用models方法获取或放置内容(在数据库中),使用另一个发送数据进行查看,并为浏览器输出视图。
答案 2 :(得分:0)
控制器从视图中获取数据并将其传递到模型中。该模型处理持久性。同样在HTTP世界中,我会说控制器从请求中获取数据,而不是直接从视图中获取数据,但这些都是实现细节。
您只是想确保模型不以任何方式依赖于视图。这是MVC中的主要规则之一。