Skip to content

Mihai Baboi

Vorbim despre mașini, tehnologie și nu numai

Menu
  • Home
  • Despre mine
  • Despre blog
  • Contact
  • Privacy Policy
Menu

Rute in CodeIgniter

Posted on May 20, 2011

In acest articol vom trata un feature foarte util in CodeIgniter, care din pacate este trecut cu vederea de o parte din dezvoltatori.

Este vorba despre asa numitele rute. Cu ajutorul lor putem sa definim niste handlere care sa reactioneze atunci cand un anumit parametru este trimis in browser.

Unul din cele mai intalnite lucruri la care sunt folosite rutele, este crearea de “URL-uri prietenoase”. Cu alte cuvinte, in loc de http://www.magazin.ro/produs/detaliu/23 o sa avem http://www.magazin.ro/detaliu-produs/telefon-mobil-android.

Sa vedem asadar, cum folosim rutele ca sa obtinem acest efect. Rutele sunt definite in mod previzibil in application/config/routes.php. In mod implicit, acest fisier contine o singura linie de cod (restul sunt comentarii):

	$route['default_controller'] = "welcome";

Ruta pe care o vom adauga noi pentru transformarea URL-ului, arata asa:

	$route['detaliu-produs/:any']='produs/detaliu';

Si acum sa explicam putin ce se intampla, ca sa putem trece mai departe. Sa luam mai intai primul URL si sa-l explicam, pentru cei care sunt mai noi in domeniul CodeIgniter. URL-ul: http://www.magazin.ro/produs/detaliu/23 apeleaza functia detaliu() cu ID-ul 23 din Controller-ul produs.php.

Deci cum ne ajuta noua ruta in functionarea URL-ului nr. 2? Dupa cum observati, de cate ori in URL este scris detaliu-produs urmat de orice altceva, CodeIgniter apeleaza functia detaliu() din Controller-ul produs.php.

Dar nu mai avem ID-ul. Cum identificam produsul dorit? Simplu, presupunand ca informatia este adusa din baza de date, in primul caz o sa avem un query de genul:

	$sql = "SELECT * FROM produs WHERE ID = " . $this->uri->segment(3);

Pentru mai multe detalii despre segmente, vezi articolul despre clasa URI in CodeIgniter.

Dar daca tabela produs, ar avea si un camp numit slug? Am putea ca la inregistrarea cu ID-ul 23 sa avem un slug “telefon-mobil-android”. Astfel, noul query va arata asa:

	$sql = "SELECT * FROM produs WHERE slug = " . $this->uri->segment(3);

Atentie! Va trebui sa va asigurati  ca slug-ul este unic la fiecare inregistrare in parte.

Dupa cum vedeti, rutele sunt o unealta importanta un arsenalul pus la dispozitie de CodeIgniter. Folosite in mod corect, deschid un nou set de posibilitati in dezvoltarea de aplicatii dinamice.

Share this:

  • Click to share on Facebook (Opens in new window) Facebook
  • Click to share on X (Opens in new window) X

Related

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • Analiză Tehnică
  • Auto
  • Comunicate
  • Concurs
  • Diverse
  • Evenimente
  • Foto
  • Hardware
  • Întreabă-mă
  • Lansări
  • Mașini
  • Noutăți auto
  • Opinie
  • Programare
  • Review
  • Scurte
  • Șed și Cuget
  • Zvonuri

allview Android aspect autonomie browser bune practici camera CodeIgniter Code Igniter Cold Fusion concluzii concurs css3 display div dual core Evolio evoMAG evoMAG.ro hardware HTC html html5 instalare lansare laptop Library libris.ro marketonline Nikon nokia performanta pret programare review samsung Samsung Galaxy S II smartphone specificatii standarde Symbian tableta teste upgrade user experience

©2025 Mihai Baboi | Design: Newspaperly WordPress Theme