Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 7. diel - Jednoduchý redakčný systém v Symfony - Výpis článku

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Lukinčok
Člen
Avatar
Lukinčok:28.3.2018 16:52

Ďakujem autorovi za tento tutoriál. :-)

Mám jeden postreh: v minulej časti sme si vkladali do databázy dva články. Jeden z nich mal podľa obsahu slúžiť pre chybovú stránku 404. V tejto časti sme ale kontroleru povedali, aby vyhodil výnimku tiež pre chybu 404 s nejakým našim popisom. Problém je, že nikde v nasledujúcich častiach už chybu 404 neriešime (alebo mám problémy so zrakom), takže na produkčnej verzii sa v prípade neplatnej adresy zobrazuje len štadnardná Not Found šablóna frameworku. Článok pre túto chybu sa teda zobrazí len v prípade, že si ho zavolám v URL a chybová hláška definovaná v kontroleri je viditeľná iba na dev verzii.

Možno by teda bolo dobré doplniť nejaké inštrukcie, ako vytvoriť šablónu pre chybovú stránku s výpisom hlášky, prípadne ako prepojiť článok "chyba" s chybou 404 bez toho, aby sa presmerovalo na ten článok. Vďaka. ;-)

 
Odpovedať
28.3.2018 16:52
Avatar
peter marák
Člen
Avatar
peter marák:8.1.2019 8:42

V controleri vysvetlujete tie 3 veci prilis strucne :-(
Mam skusenost s programovanim v Laraveli, co je tiez php framework, ale po precitani tohoto tutorialu si pripadam ako Alenka v risi divov...

 
Odpovedať
8.1.2019 8:42
Avatar
Igor Kuba
Člen
Avatar
Odpovedá na Lukinčok
Igor Kuba:31.7.2019 19:51

Chybu na neexistujúcu URL som ošetril tak že som upravil metodu index v ArticleContro­ller.php takto:

public function index(?Article $article): Response
{
    if($article===null)
        return $this->redirectToRoute ('article',array('url'=>'chyba'));

    return $this->render('article/index.html.twig', ['article' => $article]);
}

Nie som si istý či je to takto dobre, ale mne to funguje.

Editované 31.7.2019 19:53
 
Odpovedať
31.7.2019 19:51
Avatar
Dušan Bartoš:24.5.2020 14:30

Problem (Symf5):

<title>{% filter striptags %}{% block title %}{% endblock %}{% endfilter %}</title>

... hlasi chybu "Unknown filter tag"
Reseni:
v base.html.twig filter vynechat

<title>{% block title %}{% endblock %}</title>

a ve vnorenych sablonach pouzito

{% block title %}{{ article.title|striptags }}{% endblock %}
 
Odpovedať
24.5.2020 14:30
Avatar
Natalie Bohmann:7.9.2020 16:11

Tak bohuzel Symfony mi asi neni souzeno, radsi budu dal prasit proceduralni php nez tohle.
Pokud postupuju podle navodu, tak errror:
App\Entity\Article object not found by the @Entity annotation. The expression "repository.fin­dOneByUrl(url)" returned null
a pokud si stanu hotovy projekt, tak pro zmenu:
Exception thrown when handling an exception (Symfony\Compo­nent\Config\Ex­ception\FileLo­aderLoadExcep­tion: Notice: Trying to access array offset on value of type null in C:\wamp64\www\cms\­config/routes\­../../src/Con­troller/ (which is being imported from "C:\wamp64\www\cms\­config/routes/an­notations.yam­l"). Make sure annotations are installed and enabled.)


Jinak sice chapu, ze psat kod do komentaru (anotace) je uzitecne, ale nelibi se mi to.

 
Odpovedať
7.9.2020 16:11
Avatar
Natalie Bohmann:7.9.2020 21:02

Uf, povedlo se mi to rozchodit. V databazi nebyly vlozeny ty 2 clanky, composer require symfony/apache-pack se musi nejak osetrit, aby to ve windows automaticky nezamitlo contrib recipe, par veci co fungovalo ve starsich vecich uz nejde a hazi errory.. Proste hnus.

 
Odpovedať
7.9.2020 21:02
Avatar
LudvaCT
Člen
Avatar
LudvaCT:5.8.2021 16:37

Ahoj, článek hezky popisuje, ale nic nevysvětluje.

Je fajn, že upozorňujete na "Zápis routování získávající URL daného článku", ale pro mě by bylo o dost zajímavější vědět JAK to funguje a jaká je syntaxe. Vytahuje si to z injektované entity Article privátní atribut "url" (přes nikde nezmíněný getter?)? Syntaxe je {url?}? Jakou roli v té anotaci hraje "name = article"? atd.. Co je důležitější než dobře pochopit jak funguje routování?

Orientace v dokumentaci a hledání těchto základních odpovědí není pro začátečníka zrovna jednoduchá vzhledem ke komplexnosti frameworku

 
Odpovedať
5.8.2021 16:37
Avatar
Jaroslav Patrný:2.4.2022 4:29

Ahoj, v této fázi projektu mám chybu viz screenshot.
Ani příkazem
php bin/console sync-metadata-storage
se nic nezměnilo, i když jsem obdržel hlášku
[OK] Metadata storage synchronized
Kde bych mohl mít chybu?

 
Odpovedať
2.4.2022 4:29
Avatar
Odpovedá na Jaroslav Patrný
Jaroslav Patrný:2.4.2022 16:37

Už jsem to vyřešil. V souboru .env v kořenové složce projektu jsem provedl změnu v přístupových údajích databáze. V řádku

DATABASE_URL=mysql://root:@127.0.0.1:3306/cms-symfony?serverVersion=5.7

jsem upravil serverVersion takto:

DATABASE_URL=mysql://root:@127.0.0.1:3306/cms-symfony?serverVersion=mariadb-10.4.11
 
Odpovedať
2.4.2022 16:37
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!