nefunguje extends na base presenter
- Webster.K
- Člen | 212
Zdravím všechny, setkal jsem se teď s jednou drobností, co by mi měla fungovat ale nefunguje a už nevím důvod, proč se tak děje… mám BasePresenter ve kterém mám:
/** @var Nette\Database\Context */
public $database;
public function __construct(Nette\Database\Context $database) {
$this->database = $database;
}
a pak mám jiný presenter, ze kterého potřebuju, aby dědil věci z tohoto základního, jeho začátek je:
namespace App\BackModule\Presenters;
use App\Presenters\BasePresenter as Presenter;
class TestPresenter extends Presenter {
}
Je to oddělený modul, nicméně když bych chtěl použít
$this->database, tak je tahle proměná prázdná, takže když udělám
$this->database->table(‚nazev_tabulky‘); tak to hodí: Fatal Error
Call to a member function table() on null
Přijde mi, jako by tenhle presenter vůbec nedědil nic z toho základního
BasePresenteru. Jinak ten nový presenter je uložen
v app\BackModule\presenters a ten základní je v app\presenters, aplikace má
víc modulů u kterých potřebuju aby fungovali samostatně, jen připojení
pro DB je pro všechny společné
- David Matějka
- Moderator | 6445
no tak kdyz si prekryl konstruktor base presenteru, tak se nemuzes divit, ze se nezavola :) v base presenteru je lepsi zavislosti predavat pres inject properties, pripadne inject metody.