Jak vykreslit predanou komponentu parametrem

kalipny
Člen | 19
+
0
-

Standardně se komponenta v latte vykreslí pomocí
{control fooCmp}
ve chvíli, kdy je v latte takto zavolána, tak se vytvoří a vykreslí. -ok

Potřeboval bych však komponentu vytvořit v presenteru jako objekt – což není problém pomocí new \…,

pak tento objekt předat jako proměnou do jiného objektu – taky není problém,

ale pak bych ji potřeboval vyreslit v template jako součást jiného (static objektu). Nebo ji vygenerovat jako řetězec a ten pak vypsat v template.

Uznávám, že je to naprosto nevhodný postup, ale potřeboval bych to spíš jako první rychlou pomoc než se přepíše celý projekt protože komponenta bude na mnoha místech.

MajklNajt
Člen | 471
+
0
-

môžeš si v komponente vedľa render metódy (ktorú volá makro {control fooCmp}) vytvoriť metódu napr. renderToString()

public function renderToString(): string
{
    return $this->template->setFile(...)->renderToString();
}

a potom v presenteri predať do premennej

$this->template->fooCmpString = $fooCmp->renderToString();

aj keď, ako sám píšeš, je to dosť napikaču riešenie

Editoval MajklNajt (10. 10. 2019 18:53)

kalipny
Člen | 19
+
0
-

Děkuji.

To je to co jsem hledal.
Jdu to vyzkoušet.

MajklNajt
Člen | 471
+
0
-

ale počítaj s tým, že ti v tej komponente nebudú fungovať signály, formuláre atď…

CZechBoY
Člen | 3608
+
0
-

No a je to vubec komponenta nebo spis jen latte filter?