Predavanie zavislosti do komponenty

vladimir.biro
Člen | 163
+
0
-

Ahojte.

Mam takyto problem.

BasePresenter

Tu v startup() volam model, v ktorom cez SetXXX() definujem premennu.

Nasledne tovarnickou vytvaram formular, ktory pri spracovani vola iny model, ktory ale potrebuje tu premennu, ktoru som si vytvoril v BasePressenteri. Cize v tomto modeli volam ten insty model ako v BasePressenteri a zavolam metodu GetXXX.

No ked tuto metodu zavolam, vystup je len NULL.

Nasmerujete ma prosim nietko, co robim zle, resp ako to robit dobre?

Dakujem.

rkor
Člen | 62
+
0
-

A to nemůžeš poslat tu samou hodnotu, kterou posíláš do modelu, poslat do továrničky formuláře?

vladimir.biro
Člen | 163
+
0
-

No ide o to, ze to potrebujem v kazdej tovarni a budem ich robit do buducna viac a chcel som to mat poriesene tak nejako automaticky a nie aby som na to musel stale mysliet. Proste co najmenej pisania som s tych chcel mat :)

CZechBoY
Člen | 3608
+
0
-

Odkud tu promennou vytahnes?

vladimir.biro
Člen | 163
+
0
-

CZechBoY napsal(a):

Odkud tu promennou vytahnes?

Definujem ju prave v BasePresenteri. Ta premenna je:

<?php
public function startup()
{
    parent::startup();

    /** Definuj projekt podla prihlaseneho uzivatela */
    $this->projectManager->setProject( $this->getUser()->getIdentity()->id_project );
}
?>

Potom v spracovani formulara volam iny model a tam:

<?php
public function __construct(Context $database, Model\ProjectManager $projectManager)
{
    $this->database = $database;
    $this->idProject = $projectManager->getProject();
}

public function addStaticPage($param)
{
    $param['id_project'] = $this->idProject;
    return $this->database->table('static_page')->insert($param);
}
?>

Editoval vladimir.biro (15. 11. 2017 21:15)

CZechBoY
Člen | 3608
+
0
-

jo, takze z identity uzivatele…
Nebylo by lepsi mit ulozeny aktualne zvoleny id projektu nekde jinde? Co treba univerzalni databaze.
Hlavne si na tenhle ucel udelej nejakou sluzbu odkud to budou vsichni vytahovat, at to netahaj vsichni z identity uzivatele nebo kdovi odkud.

vladimir.biro
Člen | 163
+
0
-

CZechBoY napsal(a):

jo, takze z identity uzivatele…
Nebylo by lepsi mit ulozeny aktualne zvoleny id projektu nekde jinde? Co treba univerzalni databaze.
Hlavne si na tenhle ucel udelej nejakou sluzbu odkud to budou vsichni vytahovat, at to netahaj vsichni z identity uzivatele nebo kdovi odkud.

Noooo … ved ten projectManager je sluzba nie? V base presenteri zadefinujem projekt v sluzbe a potom si vsetci ostatni tuti info tahaju zo sluzby.

Ci nieco zle chapem?

CZechBoY
Člen | 3608
+
0
-

je to sluzba no, cekal jsem asi trosku jinej nazev :D
jinak nevim proc tam mas null, melo by to byt ok… muzes nahrat nejakou alespon cast projektu na github?

vladimir.biro
Člen | 163
+
0
-

Kludne ma pouc, ak mam nejake nazvoslovie blbo. Rad sa poucim. :)

Co sa tyka toho problemu, tak som sa na cas venoval niecomu inemu a teraz sa idem do toho opat hryzut. Uvidime, ci s tym dako pohnem. Ale nejde mi to do hlavy, lebo som uz v predchadzajucom projekte podobne vec riesil a nebol problem :/

Ved ked tym nepohnem, tak sem zase napisem.

vladimir.biro
Člen | 163
+
0
-

Takze problem je vyrieseny. Nejdem tu ani pisat, ze co bol problem, pretoze to bola proste debilna chyba z nepozornosti. :)

CZechBoY
Člen | 3608
+
0
-

:D napiš