Klávesnice zdarma Klávesnice zdarma
Pořádné programy s pořádnou klávesnicí zdarma. Více zde
Pouze tento týden sleva až 80 % na C# .NET

Diskuze: MVC-redakční system. Jak Poslat z Kontroleru do rozlozeni?

PHP PHP MVC-redakční system. Jak Poslat z Kontroleru do rozlozeni? American English version English version

Aktivity (1)
Avatar
Jirka Luňák:7.6.2018 11:55

Ahoj,
mám architekturu MVC podle tohoto MVC serial serialu

Mám rozloueni a přímo do něj potřebuju poslat data z Kontroleru a nevím jak to udělat.

v Rozlozeni mam

<?php foreach ($vsechnyKategorie as $kategorie) : ?>
                <li><a href=""><?= $kategorie['nazev'] ?></a></li>
<?php endforeach ?>

v StrankaKontroler mam

$KategorieManazer = new KategorieManazer();
    $kategorie = $KategorieManazer->vratKategorie(1);
    $this->data['VsechnyKategorie'] = $kategorie ;

Při načtění stránky mi to ale píše že proměná vsechnyKategorie neni nalezena

Když to místo do rozlození hodim přímo do stranka.phtml tak se mi to poše správně, ale nevím jak to poslat tedy do toho rozložení

 
Odpovědět 7.6.2018 11:55
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Jirka Luňák
Petr Čech:7.6.2018 12:32

Jména proměnných jsou case sensitive. Ty tam máš
VsechnyKategorie a vsechnyKategorie

Nahoru Odpovědět 7.6.2018 12:32
the cake is a lie
Avatar
Odpovídá na Petr Čech
Jirka Luňák:7.6.2018 12:37

Ne, tím to není.. to je jen můj překlep tady.

Ten samy kod z rozlozeni,phtml kdyz hodim do stranka.phtml tak funguje

v rozložení volám toto aby se načetla ta stranka.phtml

<?php $this->controller->printView(); // vložení aktuálního pohledu do šablony ?>

Tuším že prostě takhle $this->data['Vsechny­Kategorie'] = $kategorie ; nemůžů poslat ty data do rozlozeni, ale nevim jak to udelat spravne.

 
Nahoru Odpovědět 7.6.2018 12:37
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7.6.2018 14:23

Zapni si php error_reportin­g(E_ALL). Melo by to zacit vypisovat vsechny chyby. A jinak by bylo dobre zkopirovat primo chybovou hlasku. Pak nemusis resit, ze jsi udelal preklep. Mozna mas preklep uz i v kodu.
'proměná vsechnyKategorie neni nalezena'

S timhle zapisem bacha, zkracovac je jedno z moznych nastaveni php. Muze byt vypnuty.

<?= $kategorie['nazev'] ?>
<?php echo $kategorie['nazev']; ?>

Zkus si prubezne vypisovat promenne pres var_dump.

$kategorie = $KategorieManazer->vratKategorie(1);
var_dump($kategorie); // mozna uz tady to napise null.

Vic odhadnout z toho neumim :)

 
Nahoru Odpovědět 7.6.2018 14:23
Avatar
Jirka Luňák:7.6.2018 15:47

Zkusim svou otazku polozit jinak

mam tady ten kod z tohoto clanku

"":https://www.itnetwork.cz/…eceni-sablon

S pár rozdíly

toto vlozim do ChybaKontroler.php

$this->data['pokus'] = 'POKUS';

toto vlozim do rozlozeni.phtml hned za element nav

<p> <?= $pokus ?> </p>

a při zobrazeni chybove stranky se mi objetvi tato hláška

Notice: Undefined variable: pokus in C:\laragon\www\poh­ledy\rozlozeni­.phtml on line 26

To je můj problém, já potřebuji něco abych si přímo do rozlozeni mohl posilat nejake data a nevím jak to udelat

 
Nahoru Odpovědět 7.6.2018 15:47
Avatar
Jakub Du
Člen
Avatar
Jakub Du:7.6.2018 18:39

A nemáš chybu v Controlleru v metodě printView() nebo v metodě osetri(). A jsou ty "rozdíly" v tvém kódu právě v těchto metodách. Případně je sem vypiš.

Editováno 7.6.2018 18:41
 
Nahoru Odpovědět 7.6.2018 18:39
Avatar
Odpovídá na Jakub Du
Jirka Luňák:7.6.2018 20:23

toto je ta chyba
"":https://ctrlv.cz/qq1q

a zde aktualni kod

"":https://uloz.to/…MP/dotaz-zip

Jde mi o to jak spravne do rozlozeni poslat data.

 
Nahoru Odpovědět 7.6.2018 20:23
Avatar
Jakub Du
Člen
Avatar
Jakub Du:7.6.2018 20:37

Musíš mít

$this->data['pokus'] = 'POKUS';

ve SmerovacKontroleru na konci metody zpracuj s tím, že se ti bude zobrazovat všude. Pokud jí chceš mít jen chybové stránce, musíš vložit do chyba.phtml

<p> <?= $pokus ?> </p>
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 7.6.2018 20:37
Avatar
Jirka Luňák:7.6.2018 20:42

To funguje, díky moc :)

Akorát já mám ve skutečnosti daleko rozsáhlejší projekt... není to nebezpečné to mít přímo takhle v tom SmerovacKontroleru? Jakože kvůli vzniku chyb a tak?

 
Nahoru Odpovědět 7.6.2018 20:42
Avatar
Jakub Du
Člen
Avatar
Jakub Du:7.6.2018 21:25

Žádné chyby mě nanapadají. Zkrátka když potřebuješ dostat nějaká data do rozložení, tak musíš použít směrovač. Směrovač se chová jako normální kontroler.

 
Nahoru Odpovědět 7.6.2018 21:25
Avatar
Odpovídá na Jakub Du
Jirka Luňák:7.6.2018 21:30

ok, díky moc za pomoc

 
Nahoru Odpovědět 7.6.2018 21:30
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.