Oplossing gezocht Codeigniter router
patrick S
23/05/2013 15:55:54Hallo,
Ik ben opzoek naar een manier om url's uit de database te laden. Ik wil graag kunnen controleren of het url een pagina, camping, land of een plaats is.
Zodat er daarna naar één van de modules doorverwezen kan worden.
Ik heb gezien dat het mogelijk is door de routes op te slaan in het routes.php bestand. Maar aangezien er meer dan 1000 campings in de database staan lijkt mij dat geen goed plan.
De url's zien er zo uit:
voorbeeld.nl/aanbiedingen
voorbeeld.nl/campingnaam
voorbeeld.nl/campings-in-zeeland
voorbeeld.nl/campings-in-renesse
voorbeeld.nl/campings-in-nederland
Moet ik ze nu toch gewoon in routes.php opslaan of is hier een betere manier voor?.
Alvast bedankt.
Met vriendelijke groet,
Patrick
Ik ben opzoek naar een manier om url's uit de database te laden. Ik wil graag kunnen controleren of het url een pagina, camping, land of een plaats is.
Zodat er daarna naar één van de modules doorverwezen kan worden.
Ik heb gezien dat het mogelijk is door de routes op te slaan in het routes.php bestand. Maar aangezien er meer dan 1000 campings in de database staan lijkt mij dat geen goed plan.
De url's zien er zo uit:
voorbeeld.nl/aanbiedingen
voorbeeld.nl/campingnaam
voorbeeld.nl/campings-in-zeeland
voorbeeld.nl/campings-in-renesse
voorbeeld.nl/campings-in-nederland
Moet ik ze nu toch gewoon in routes.php opslaan of is hier een betere manier voor?.
Alvast bedankt.
Met vriendelijke groet,
Patrick
Gewijzigd op 23/05/2013 15:56:54 door Patrick S
PHP hulp
03/12/2024 18:35:15Rick van Riel
23/05/2013 17:06:39Patrick,
Binnen codeigniter kun je routes definiëren door een route aan de $routes array toe te voegen.
Je kunt dus zoals je zelf aangaf per pagina een route specificeren maar dit werkt alleen als de pagina's statisch zijn.
Daarom maakt codeigniter gebruik van (:any) en (:num) statements. Met deze statement kun je een dynamische url creëren.
Zoals je in de code hierboven ziet zorg het ervoor dat een url die "http://www.url.nl/product" bevat gebruik maakt van de "catalog/product_lookup" controller.
Binnen codeigniter kun je routes definiëren door een route aan de $routes array toe te voegen.
Je kunt dus zoals je zelf aangaf per pagina een route specificeren maar dit werkt alleen als de pagina's statisch zijn.
Daarom maakt codeigniter gebruik van (:any) en (:num) statements. Met deze statement kun je een dynamische url creëren.
Zoals je in de code hierboven ziet zorg het ervoor dat een url die "http://www.url.nl/product" bevat gebruik maakt van de "catalog/product_lookup" controller.
patrick S
23/05/2013 20:25:56En is er ook een manier om dit vanuit de database te doen?
Dus zoiets als dit:
if($this->db->where('url', $this->uri->segment(1))->get('products')->num_rows() > 0)
{
$route['product/(:any)'] = 'catalog/product/$1';
}
elseif($this->db->where('url', $this->uri->segment(1))->get('categories')->num_rows() > 0)
{
$route['product/(:any)'] = 'catalog/category/$1';
}
Dus zoiets als dit:
if($this->db->where('url', $this->uri->segment(1))->get('products')->num_rows() > 0)
{
$route['product/(:any)'] = 'catalog/product/$1';
}
elseif($this->db->where('url', $this->uri->segment(1))->get('categories')->num_rows() > 0)
{
$route['product/(:any)'] = 'catalog/category/$1';
}