编辑:解决了,我在Controller类中使用私有而不是受保护的属性。
尝试使用继承的类中的属性时出现错误。我的Controller类看起来像这样。
<?php
namespace App\Controllers;
use Http\Request;
use Http\Response;
use App\Templates\Renderer;
class Controller{
private $request;
private $response;
private $renderer;
public function __construct(Request $request, Response $response, Renderer $renderer){
$this->request = $request;
$this->response = $response;
$this->renderer = $renderer;
}
}
我正在扩展的Pages类看起来像这样。
<?php
namespace App\Controllers;
use App\Models\Book;
class Pages extends Controller{
public function index(){
$book = new Book;
$book->title = 'test';
// $book->save();
// echo 'Book created';
$html = $this->renderer->render('index');
$this->response->setContent($html);
}
}
我得到的错误看起来像这样
Undefined property: App\Controllers\Pages::$renderer
答案 0 :(得分:0)
您应该将$renderer
字段的可见性从private
更改为protected
。
那是因为