Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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代码中获取非对象错误的属性_Php - Fatal编程技术网

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

试图在我的php代码中获取非对象错误的属性,php,Php,所以我一直在努力学习如何创建mvc,但我能找出哪里出了问题 似乎我忘记发布错误: 注意:试图在第2行的C:\xampp\htdocs\my\u mvc\views\producten\show.php中获取非对象的属性 注意:试图在第3行的C:\xampp\htdocs\my\u mvc\views\producten\show.php中获取非对象的属性 注意:试图在第4行的C:\xampp\htdocs\my\u mvc\views\producten\show.php中获取非对象的属性 观点

所以我一直在努力学习如何创建mvc,但我能找出哪里出了问题

似乎我忘记发布错误: 注意:试图在第2行的C:\xampp\htdocs\my\u mvc\views\producten\show.php中获取非对象的属性

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

注意:试图在第4行的C:\xampp\htdocs\my\u 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']);
    }
  }
?>


如果有人能帮我做这件事,那就太棒了

试着换掉你的台词

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


在你的index()方法中

请发布你想要修复的错误日志。我似乎忘记了,现在添加了它。更改了它并相应地编辑了show.php,但我得到了相同的错误你应该添加var_dump($product)行;在show.php文件的顶部。如果结果为空,则检查您的Product::find($etal)函数vardump返回:array(1){[0]=>object(Product)#4(4){[“etal”]=>string(8)“testtal”[“naam”]=>string(8)“testnaam”[“prijs”]=>string(3)“123”[“omsch”]=>string(9)“testomsch”}好的,您得到的是一个产品数组,而不是产品。出现错误时调用哪个方法,index()还是show()方法?给出错误时调用index()
 $producten = Product::all();
 require_once('views/producten/index.php');