试图在我的PHP代码中获取非对象错误的属性

时间:2017-03-03 11:35:47

标签: php

所以我一直试图学习如何创建一个mvc,但我只能弄清楚什么是错误的

好像我忘了发布错误: 注意:尝试在第2行的C:\ xampp \ htdocs \ my_mvc \ views \ producten \ show.php中获取非对象的属性

注意:尝试在第3行的C:\ xampp \ htdocs \ my_mvc \ views \ producten \ show.php中获取非对象的属性

注意:尝试在第4行的C:\ xampp \ htdocs \ my_mvc \ views \ producten \ show.php中获取非对象的属性

的观点: 的index.php:

    <p>Here is a list of all producten:</p>

<?php foreach($producten as $product) { ?>
  <p>
    <?php echo $product->etal; ?>
    <a href='?controller=producten&action=show&etal=<?php echo $product->etal; ?>'>See content</a>
  </p>
<?php } ?>

show.php:

    <p> requested products</p>
<p><?php echo $product->etal; ?></p>
<p><?php echo $product->naam; ?></p>
<p><?php echo $product->prijs; ?></p>

控制器: producten_controller.php:

    <?php
      class productenController {
        public function index() {

          $product = Product::all();
          require_once('views/producten/show.php');
        }

        public function show() {

          if (!isset($_GET['etal']))
            return call('pages', 'error');


          $product = Product::find($_GET['etal']);


   require_once('views/producten/show.php');
    }
  }
?>

模型: product.php:

 <?php
  class Product {

    public $etal;
    public $naam;
    public $prijs;
    public $omsch;

    public function __construct($etal, $naam, $prijs,$omsch) {
      $this->etal  = $etal;
      $this->naam  = $naam;
      $this->prijs = $prijs;
      $this->omsch = $omsch;
    }

    public static function all() {
      $list = [];
      $db = Db::getInstance();
      $req = $db->query('SELECT * FROM producten');


      foreach($req->fetchAll() as $product) {
        $list[] = new product($product['etal'], $product['naam'], $product['prijs'],$product['omsch']);
      }

      return $list;
    }

    public static function find($etal) {
      $db = Db::getInstance();

      $etal = intval($etal);
      $req = $db->prepare('SELECT * FROM producten WHERE etal = :etal');

      $req->execute(array('etal' => $etal));
      $product = $req->fetch();

      return new product($product['etal'], $product['naam'], $product['prijs'],$product['omsch']);
    }
  }
?>

如果有人可以帮助我,这将是惊人的

1 个答案:

答案 0 :(得分:0)

尝试更换行

 $product = Product::all();
 require_once('views/producten/show.php');

使用

 $producten = Product::all();
 require_once('views/producten/index.php');
index()方法中的