Volání konstruktoru předka

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kejlicz
Člen | 201
+
0
-

Z vlákna, které už bylo smazáno jsem řešil, jak správně volat v konstruktoru presenteru konstruktor předka.

V minulém vlákně mi bylo napsáno, že to má být parrent::__construct($this->itemModel, .....), tak zkouším tohle.

Můžeš mi PROSÍM někdo konkrétně říct, jak to má být, protože tohle mi nefunguje a BasePresenter zase dostává místo ItemModel jen null.

BasePresenter

abstract class BasePresenter extends Nette\Application\UI\Presenter
{
    protected $itemModel;
    protected $categoryModel;

    public function __construct(\Model\ItemModel $itemModel, \Model\CategoryModel $categoryModel)
    {
        $this->itemModel = $itemModel;
        $this->categoryModel = $categoryModel;
    }
..........

RegistrationPresenter

class RegistrationPresenter extends BasePresenter
{
    public function __construct()
    {
        parent::__construct($this->itemModel, $this->categoryModel);
    }

Díky MOC.

Etch
Člen | 403
+
0
-

Nebylo smazáno jen přesunuto do koše, protože se nejedná o věc související s Nette, ale o elementární neznalost PHP.

„V minulém vlákně mi bylo napsáno, že to má být parrent::__construct($this->itemModel, .....), tak zkouším tohle.“

To bylo napsáno obecně, aby bylo vidět, že musíš předávat argumenty.

class RegistrationPresenter extends BasePresenter{
    public function __construct(\Model\ItemModel $itemModel, \Model\CategoryModel $categoryModel){
        parent::__construct($itemModel, $categoryModel);
    }
}

Editoval Etch (26. 2. 2014 14:59)

kejlicz
Člen | 201
+
0
-

Díky moc Etch. Něco jsem si o tom četl a teď už mi je to jasný. Kdybych tušil, že to nemá spojitost s Nette, tak se zeptám na jiném fóru. Omlouvám se.