[英]php class inheritance $this->… is undefined?
編輯:解決了,我在Controller類中使用的是private而不是受保護的屬性。
嘗試從繼承的類中使用屬性時出現錯誤。 我的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
您應該將$renderer
字段的可見性從private
更改為protected
。
那是因為
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.