2017-05-13 3 views
1

Ich habe Ansichts-Klasse wie folgt aus:Kann nicht Parent-Eigenschaft von Kind-Klasse festgelegt

class View { 
    public function __construct() { 
    } 
    public static function render($name) { 
     require 'views/user/header.php'; 
     require 'views/user/'.$name.'.php'; 
     require 'views/user/footer.php'; 
    } 
} 

und ich rufe die Ansichtsklasse in der Steuerung wie folgt aus:

class Controller { 
    function __construct() { 
     $this->view = new View(); 
    } 
} 

und dann stelle ich die Ansicht Eigenschaft von Controller Kind-Klasse, wie folgt aus:

class Index extends Controller { 

    function __construct() { 
     parent::__construct(); 
     $this->view->js = "test"; 
    } 

    public function index() { 
     $this->view->render('index/index'); 
    } 
} 

Aber wenn ich will $ this- bekommen> js von „header.php“, die machen fu gesetzt nction auf Ansichts-Klasse, habe ich immer diese Fehlermeldung:

Fatal error: Uncaught Error: Using $this when not in object context 

ich versucht wurde, zu überprüfen, bin ich in der richtigen Klasse? Verwenden Sie diese Methoden in "header.php" Datei:

das bedeutet, ich war auf der View-Klasse, richtig?

Kann mir bitte jemand helfen?

Vielen Dank im Voraus

Antwort

0

Sie haben render() als statische Methode definiert, aber Sie nennen es, wie es war nicht statisch.

würde ich wahrscheinlich profitieren von der Lektüre dieses: http://chadminick.com/articles/simple-php-template-engine.html

P. S. Was Sie "Ansicht" nennen, ist nur eine Vorlage.

+0

Oh ... Mann. Ich bin mir nicht bewusst, ob meine Renderfunktion statisch ist. Es ist jetzt Arbeit. Vielen Dank @ tereško. – bagongpct

Verwandte Themen