Pentru cei care nu știu - CNC (abrevierea pentru URL-ul prietenos pentru oameni) - URL - cale care constă în cuvinte inteligibile, în loc de identificatori și care reflectă structura fișierului site-ului.
In acest articol voi discuta modul de a face link-uri „frumoase“ (sau ceea ce ai nevoie pentru a) pe site-ul dvs. prin crearea de reguli pentru clasa yii2 Yii2 urlManager componenta lor. Trebuie remarcat faptul că crearea unei clase și un tabel separat în baza de date pentru ea - este o abordare destul de radicală, și, probabil, va crea doar mai multe câmpuri pentru „slug“ și a stabilit reguli urlManager ca aici.
Voi da cateva exemple despre ceea ce vom incheia cu:
Aici ne prescrie mai multe reguli, atunci când folosim care yii2 nu ar trebui să folosească baza de date. Le-am pus să se conecteze SefRule noastre de clasă la „regulile“ maselor, în conformitate cu programul lor atunci când este utilizat înainte de a ajunge la următoarele linii. Și anume:
De asemenea, în urlManager componenta de configurare dezactivăm ieșirea de la punctul de intrare - pagina index.php și alte inscripții oficiale (rute de sarcină) și să interzică cadre pentru nerespectarea politicilor noastre în mod voluntar să caute o modalitate de a deschide pagina solicitată (elimina duplicatele pagini).
Creați o clasă de reguli CNC.
După cum puteți vedea din regulile urlManager. clasa va fi plasată în componente \ comune. Mai jos este codul complet al fișierului SefRule.php.
Clasa noastră SefRule moștenește metode din clasa Obiect și implementează interfața UrlRuleInterface. Se compune din două metode principale, dintre care unul createUrl () - transmite URL-ul din baza de date cât este necesar, iar al doilea parseRequest () ne transformă imaginația într-un fel de standard pentru Yii2. Adică, acesta caută o adresă URL arbitrară în baza de date, returnând o adresă URL obișnuită. Toate metodele specificate sunt standard, nu le puteți redenumi.
În metoda createUrl (), am specificat controlorii (am un PostController și un SiteController), care vor fi prefixate cu prefixul .html. indicând că aceasta este o pagină statică.
Acum, cu privire la baza de date.
Pentru cei care folosesc migrarea yii pentru a lucra cu baza de date, stabiliți codul corespunzător:
Puteți crea manual. Anume - l-am numit pe șeful mesei. există doar 3 câmpuri în el:
- id (primKey, AUTO_INCREMENT);
- link (varchar (255));
- link_sef (varchar (255)).
După controler, trebuie să specificați acțiunea care definește fișierul pentru a afișa pagina. Pentru înregistrările care sunt preluate din baza de date, am o viziune. Apoi, este indicat id-ul înregistrării / titlului / etichetei specifice pe care este selectată baza de date.
Asta e tot, acum avem un URL scurt și ușor de înțeles. Și paginile blogului nostru nu va fi numit 1,2,3 și au propriile lor URL-nume. Pentru comoditate, puteți conecta atribuirea automată a URL-alias în site-ul admin la crearea / editarea de posturi și alte lucruri. Dar acest lucru este important pentru un alt articol.