0

我正在学习整个 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。

4

3 回答 3

0

使用这样的东西

$this->set('data_blog', BlogModel::dbBlog());
于 2013-05-06T13:16:29.147 回答
0

找到答案 :)

控制器:

    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;
    }
}

所以问题出在模型中,我只需要返回条目并使用控制器中的集合。

于 2013-05-06T14:10:48.867 回答
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();
    }
}
于 2013-05-06T13:17:36.097 回答