Dit heeft niets met 'bizar' te maken. In je parent heb je $this->view niet gedefinieerd. Die variabele wordt dus runtime aan gemaakt en is daarmee private geworden. Descending classes kunnen die variabele dus niet gebruiken. Leer de verschillen tussen private, protected en public, dan is dit niet meer 'bizar'.
Link gekopieerd
En gebruik ook een autoloader.
Link gekopieerd
protected of public maken van view werkt niet.
Link gekopieerd
Probeer zo eens...
<?php
class TESS_controller{
protected $view;
public function __construct()
{
$this->view = new TESS_view();
}
public function load($model)
{
require 'application/models/' . $model . '.php';
$this->model = new $model;
}
}
?>
Link gekopieerd
heb ik al geprobeerd werkt niet
in de main controller kan ik dus vars on the fly maken
$this->view->nummer = 8 geen probleem
maar in de childcomtrollers krijg ik steeds undefined variable TESS_view::nummer.
terwijl ik op de tutorial die gast hetzelfde zie doen in de childs met dezelfde code ongeveer denk ik.
ligt dat aan men instellingen ofzo? ik zie anders geen uitweg?
tenzij de views telkens op te roepen in de child controllers in plaats van in de main controller
maar dan heeft die ook geen nut meer.
Link gekopieerd
Laat (de code) eens zien hoe je dat doet vanuit de child controller.
Link gekopieerd
stel ik surf naar index/test, word mijn test functie aangeroepen
die zegt dat $this->view->naam gelijk aan men modal die bv Anthony returned
variable $this->view->naam blijft leeg NULL;
<?php
class Index extends TESS_controller{
public function __construct()
{
parent::__construct();
$this->view->load('index/index');
}
public function test()
{
$this->view->naam = $this->model->Getnaam();
}
}
?>
[size=xsmall]Toevoeging op 18/06/2013 10:22:44: [/size]
doe ik dit inde main werkt het wel
Link gekopieerd
Net had je het over een foutmelding die je kreeg, nu heb je het over een variabele die NULL is. Dat zijn 2 verschillende dingen. En waar roep je die $this->view->naam op?
Link gekopieerd
in de client index
print $this->naam;
alles werkt als ik de view in elke controller aanmaak
dus elke keer $this->view = new TESS_view;
maar ik wil dat in men main doen daarvoor dient deze tog.
ik begrijp het echt niet. ik zie mensen dit doen. ben al van gisteren middag bezig dit op te lossen maar in vind geen oplossing.
Link gekopieerd
$this->naam is iets anders dan $this->view->naam.
Plaats nu eens gewoon even al je code inclusief de code waar het misgaat.
Link gekopieerd