我试图将$task数组和$str_pag变量传递给视图。我尝试将变量声明$str_pag为公共变量,但视图显示一个数组,而变量则不显示。控制器class Index extends Controller{ public function __construct() { parent::__construct(); require 'views/header.php'; require 'models/index_model.php'; } public function index() { $tasks = Index_Model::index($id, $login, $email, $password); require 'views/index/index.php'; require 'views/footer.php'; }}模型class Index_Model extends Model{ public $str_pag; public function index($id, $login, $email, $password) { $db = new Database(); if (isset($_GET['page'])){ $page = $_GET['page']; }else $page = 1; $total = Index_Model::getCount(); $kol = 3; $art = ($page * $kol) - $kol; $str_pag = ceil($total / $kol); $stm = $db->prepare('SELECT * FROM users LIMIT ?,?'); $stm->bindValue(1, $art, PDO::PARAM_INT); $stm->bindValue(2, $kol, PDO::PARAM_INT); $stm->execute(); $task = array(); $i=0; while($row=$stm->fetch()) { $task[$i]['name'] = $row['name']; $task[$i]['email'] = $row['email']; $i++; } return $task; }
1 回答
RISEBY
TA贡献1856条经验 获得超5个赞
您可以从 Model 返回您需要的任何内容作为值数组。
然后,在您调用模型方法的控制器内,只需将其分配给将传递给视图的变量。
解决方案:
在模型更改return $task;中return [$task, $str_pag];
然后在控制器中编辑你的index()方法,如下所示:
public function index() {
list($tasks,$str_pag) = Index_Model::index($id, $login, $email, $password);
require 'views/index/index.php';
require 'views/footer.php';
}
只是提一下,尝试从视图访问模型的公共属性不是一个好主意,因为它破坏了整个MVC想法。$_GET与从模型代码访问全局变量一样。而不是这个 - 将其作为参数传递并从return语句中获取它。
这就是控制器“控制”所有这些东西的责任。
- 1 回答
- 0 关注
- 83 浏览
添加回答
举报
0/150
提交
取消