亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MVC:如何將數組和變量從模型傳遞到視圖?

MVC:如何將數組和變量從模型傳遞到視圖?

PHP
慕田峪9158850 2023-09-22 15:23:00
我試圖將$task數組和$str_pag變量傳遞給視圖。我嘗試將變量聲明$str_pag為公共變量,但視圖顯示一個數組,而變量則不顯示??刂破鱟lass 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語句中獲取它。


這就是控制器“控制”所有這些東西的責任。


查看完整回答
反對 回復 2023-09-22
  • 1 回答
  • 0 關注
  • 123 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號