Skip to main content

Laravel 9: Použitie JS knižnice "SweetAlert" (zobrazenie potvrdzovacieho dialogu) pri výmaze komentára pod príspevkom.

1.) aplikácia v Laravel (ver.9) zobrazuje zoznam príspevkov (blog):

 

2.) konkrétny príspevok (jeho obsah) je zobrazený hocikomu, ale možnosť pridávať komentár k príspevku má iba priblásený používateľ:

 

3.) vkladanie komentára cez formulár je na tejto stránke/view riešené takto:

 

4.) ako vidno z kódu, komentár môže vkladať iba prihlásený používateľ:


5.) komentáre k danému príspevku sú na stránke/view "post.blade.php" zobrazované pod týmto formulárom na vloženie nového komentára, a sú viditeĺné pre každého, ale editácia a vymazanie daného komentára je možná iba používateľovi ktorý ho vytvoril


6.) tlačítko [Delete] na výmaz komentára má definovaný route a tiež má definované "id" (lebo sa na neho odkazujem v ďalšom kóde) a nesie si v sebe aj obsah samotného komentára (v parametri "data-body") a tiež dátum vytvorenia komentára (v parametri "data-date"):


7.)  táto stránka/view využíva "master layout" view/stránku, ktorá je inicionaná na úplnom začiatku kódu v "post.blade.php":


8.)  v master layout view (súbor "master_page.blade.php") je referencia na tri dôležité JS knižnice (aby som mohol využívať funkcionalitu "SweetAlert") a tiež je tam tento jQuery kód:


9.) tento kód ošetruje kliknutie na tlačítko [Delete] vo view "post.blade.php" a zobrazuje požadovaný modálny dialog, kde potom ďalej - v prípade potvrdenia smeruje na definovaný route, resp.v prípade zrušenia (operácie) iba zmizne tento dialog a nič sa nevykoná

 

10.) ak mám pod príspevkom vytvorené nejaké komentáre:

 

po kliknutí na tlačítko [Delete] sa zobrazí požadovaný modálny dialog:

ak vyberiem [Cancel] dialog zmizne a nič sa nevykoná, ak kliknem na [Yes, delete it!], volá sa route "Comment.Delete" (definovaný v "post.blade.php" na tlačíku spolu s "id" daného komentára) v súbore aplikačných routov "web.php":


12.) a tento route volá funkciu "DeleteComment" v kontroléri "CommentController" - v súbore kontroléra "CommentController.php" je to tento kód:


 

13.) po výmaze v databáze sa presmeruje naspäť na stránku "post.blade.php" s daným príspevkom a jeho komentármi. Vymazaný komentár tu už nefiguruje.  

 

 


Comments