我正在学习整个MVC类型的编程。我在模型中有一个MySQl查询,如下所示:
<?php
class BlogModel extends BaseModel {
public static function dbBlog() {
$db = new Database(true);
$entries = $db->matrix('cms_m1_blog_ml');
$this->set('data_blog', $entries);
}
}
当我在控制器中使用它时,此脚本有效。视图看起来像这样:
<?php
foreach($data_blog as $blog)
{
echo "<ul>";
echo "<li class='name'>Name:".$blog['title'] . "</li>";
echo "<li class='content'>Content:".$blog['content'] . "</li>";
echo "</ul>";
}
如何将数据从模型传递到控制器?我试过各种各样的事情,但没有一个方向正确。我使用我的员工构建的自定义框架,但它基于CakePHP。
答案 0 :(得分:0)
使用类似的东西
$this->set('data_blog', BlogModel::dbBlog());
答案 1 :(得分:0)
为控制器提供对模型的引用。如果模型是静态类,只需将静态变量添加到控制器类,否则将正确的模型对象作为参数传递给类构造函数,并将其存储在对象的属性中。像这样:
class BlogModel extends BaseModel {
private $db;
private $entries;
public static function dbBlog() {
$db = new Database(true);
$entries = $db->matrix('cms_m1_blog_ml');
}
// Add getters here
}
class BlogController {
// Get mymodel somehow and store it
public function doStuff() {
$this->mymodel.getDB();
}
}
答案 2 :(得分:0)
找到了anwser:)
控制器:
public function blog(){
$this->set('data_blog', BlogModel::dbBlog());
}
public function index() {
}
}
型号:
public static function dbBlog() {
$db = new Database(true);
$entries = $db->matrix('cms_m1_blog_ml');
return $entries;
}
}
所以问题出在模型中,我只需要返回条目并使用控制器中的集合。