Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MVC计数函数和传递到视图_Php_Model View Controller_Count - Fatal编程技术网

PHP MVC计数函数和传递到视图

PHP MVC计数函数和传递到视图,php,model-view-controller,count,Php,Model View Controller,Count,我只是想了解一下MVC,在计算数据库中的小部件数量时遇到了一些麻烦 我不确定这是不是搞砸了它,但在我的索引页上我有这个 <?php require APPROOT . '/views/inc/header.php'; ?> Some Other stuff here <?php require APPROOT . '/views/inc/widget.php'; ?> 这里还有别的东西 模型 小部件总数 我

我只是想了解一下MVC,在计算数据库中的小部件数量时遇到了一些麻烦

我不确定这是不是搞砸了它,但在我的索引页上我有这个

        <?php require APPROOT . '/views/inc/header.php'; ?>

          Some Other stuff here

        <?php require APPROOT . '/views/inc/widget.php'; ?>

这里还有别的东西
模型


小部件总数
我似乎得到的只是这个错误 注意:尝试获取C:\xampp\htdocs\app\views\inc\widget.php第29行中非对象的属性“id”

如果有人能告诉我哪里出了问题,我将不胜感激,并提前感谢您提供的任何帮助

谢谢
Molly

rowCount()
,我假设它返回的是一个整数,而不是一个对象。此外,您不会将任何内容从模型返回到控制器,因此控制器中永远不会填充
$count
。由于这些原因,
$count
中没有名为
id
的属性。此外,
id=id
是一个绝对无用的WHERE子句条件,因为它不会过滤掉任何行。如果你需要一个
$count->id
值,你将需要从结果集中生成一个对象(不计算结果集中有多少行),那么你的视图将停止对你的反驳。我投票将这个问题作为主题外的打字错误来结束,因为这个错误/误解不太可能帮助未来的研究人员。此页面也可以作为许多页面的副本轻松关闭,例如
        <?php
     class Widget {
        private $db;

        public function __construct(){
          $this->db = new Database;
        }

        public function countWidgets(){
          $this->db->query("SELECT id FROM widgets WHERE id=id");
          $count = $this->db->rowCount();
           }
<?php
         class Widgets extends Controller{
            public function __construct(){
              // Load Models
              $this->widgetModel = $this->model('Widget');
            }

        public function widget(){
              $count = $this->widgetModel->countWidgets();
              $data = [
                'count' => $count
              ];
              $this->view('inc/widget', $data);
            }  
        }
<div class="media-body text-right">
  <h2 class="text-white"><?php echo $count->id; ?></h2>
  <span>Total Widgets</span>
</div>