PHP url routing en mapping params
Mr Beronne
21/04/2016 17:20:56Ik heb een tijdje gewerkt met het PHP framework Laravel welke gebruik maakt van een handig routing mapping systeem. Hiermee kan je vooraf routes / url definiëren. Nu ben ik bezig met het maken van een eigen mvc om mijn PHP kennis verder te ontwikkelen.
Ik heb een router.php bestand waar ik van te voren al mijn routes in zet.
Routes.php
\
In dit voorbeeld heb ik twee GET routes. De eerste parameter is de url de tweede parameter is de
controller en methode. In de eerste parameter zie je bv staan: /product/{id} waar {id} een placeholder
is voor een id in de url.
Nu zit ik met het volgende probleem. Het is de bedoeling dat ik door alle routes heen loop en deze moet controleren op de binnenkomende URL. Alleen zijn het twee verschillende urls
Ik kan d.m.v preg_match_all wel de {} uitlezen
Nu is mijn vraag of iemand mij kan helpen hoe dit nu werkt. Wat mis ik en waar zal ik moeten beginnen.
Ik heb een router.php bestand waar ik van te voren al mijn routes in zet.
Routes.php
Code (php)
1
2
2
Route::get("/", "HomeController@index");
Route::get("/product/{id}", "ProductController@getProductById");
Route::get("/product/{id}", "ProductController@getProductById");
In dit voorbeeld heb ik twee GET routes. De eerste parameter is de url de tweede parameter is de
controller en methode. In de eerste parameter zie je bv staan: /product/{id} waar {id} een placeholder
is voor een id in de url.
Nu zit ik met het volgende probleem. Het is de bedoeling dat ik door alle routes heen loop en deze moet controleren op de binnenkomende URL. Alleen zijn het twee verschillende urls
Ik kan d.m.v preg_match_all wel de {} uitlezen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
preg_match_all('/\\{(.*?)\\}/', '/product/{id}', $matches);
// print matches
echo '<pre>';
print_r($matches);
echo '</pre>';
// Resultaat van print
Array
(
[0] => Array
(
[0] => {id}
)
[1] => Array
(
[0] => id
)
)
// print matches
echo '<pre>';
print_r($matches);
echo '</pre>';
// Resultaat van print
Array
(
[0] => Array
(
[0] => {id}
)
[1] => Array
(
[0] => id
)
)
Nu is mijn vraag of iemand mij kan helpen hoe dit nu werkt. Wat mis ik en waar zal ik moeten beginnen.
Er zijn nog geen reacties op dit bericht.