Autor Zpráva
Micruss
Profil
Zdravím

mám 2 modely:
AccountModel (pracuje s databází a předává informace o uživateli z db)
JobModel (tento model kontroluje a přidává práci)

a já bych potřeboval předat JobModelu právě ty info z db od AccModel

v presenteru při startUp() homepagepresenter kontroluji přihlášení a pokud projde tak vytvořím instanci třídy AccountModel, která mi předá infromace z db, akorát je problém, když chci volat metodu checkJob() z JobModel tak potřebuju ty informace o uživateli, a nevím jak je tam předat napadlo mě do konstrukteru volat a nebo zdědit.

vypadá to:

1public function startUp() {
2parent::startUp();
3 
4$user = $this->getUser();
5$user->setExpiration('+ 30 minutes', TRUE);
6if(!$user->isLoggedIn()) { 
7$this->flashMessage('Nejste přihášen', 'danger');
8$this->redirect(':Front:Base:default');
9  }
10  $this->acc = new \AccountModel($this->user->id);
11  $this->template->acc = $this->acc;
12}
public function startUp() {
parent::startUp();
 
$user $this->getUser();
$user->setExpiration('+ 30 minutes', TRUE);
if(!$user->isLoggedIn()) { 
$this->flashMessage('Nejste přihášen''danger');
$this->redirect(':Front:Base:default');
  }
  $this->acc new \AccountModel($this->user->id);
  $this->template->acc $this->acc;
}

ještě mi tam chybí try {} catch() {} což kontroluje práci jestli neskončila nebo ještě probíhá... ale je mi blbý dávat new JobModel($this->acc); atd... nějaký elegantnější řešení existuje? Možná nad tím až tak mco přemejšlím, že to půjde úplně jednoduše...

// vyřešil jsem to použití INJECT metody :-) ...
[/pre]
Bertram
Profil
Micruss:
Na 11-tém řádku předáváte do šablony acc.
Neposloužil by stejně i objekt identity a jeho třetí parametr?
Přistoupíte k němu z objektu Uživatele.


vyřešil jsem to tak, že jsem dal do konstukteru v jobmodelu $this->acc = dibi.... atd...
Spíše bych vám doporučil použít dependency injection.
Micruss
Profil
Bertram:
jasný to taky dělám...

jinak DI mě taky napadlo ;-)

ale dík za odpověď
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.

Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:


Běda vám, jestli to bude blábol.

0