试图在我的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:试图在我的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中获取非对象的属性 观点
<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');