Vánoční nadílka Vánoční nadílka
Až 80% zdarma! Předvánoční BLACK FRIDAY akce. Více informací

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. června 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. června 11:55
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Jirka Luňák
Petr Čech:7. června 12:32

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

Nahoru Odpovědět 7. června 12:32
the cake is a lie
Avatar
Odpovídá na Petr Čech
Jirka Luňák:7. června 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. června 12:37
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7. června 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. června 14:23
Avatar
Jirka Luňák:7. června 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. června 15:47
Avatar
Jakub Du
Člen
Avatar
Jakub Du:7. června 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. června 18:41
 
Nahoru Odpovědět 7. června 18:39
Avatar
Odpovídá na Jakub Du
Jirka Luňák:7. června 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. června 20:23
Avatar
Jakub Du
Člen
Avatar
Jakub Du:7. června 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. června 20:37
Avatar
Jirka Luňák:7. června 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. června 20:42
Avatar
Jakub Du
Člen
Avatar
Jakub Du:7. června 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. června 21:25
Avatar
Odpovídá na Jakub Du
Jirka Luňák:7. června 21:30

ok, díky moc za pomoc

 
Nahoru Odpovědět 7. června 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.