Задать вопрос
@Aqulus

Как вытащить из роута параметры по определенному формату?

Здравствуйте. Пишу свою первую MVC модель на PHP и возникла проблема с роутами.
У меня основная часть реализована, но имеются проблемы с вытаскиванием параметров из строки через формат из бд.

В бд примерно такое:
route_name => members
route_format => members/%user_id%

Для начала, я хотел разделить строки по "/" и потом как-то скрестить параметры, аля "ключ массива %user_id%" => 1 (из строки браузера), но не могу понять, как.

Код:
### FETCH PARAMS ####
		$pageParams = [];
		$format = $controller['route_format'];
		if ($format)
		{
			$explodedRoute = explode('/', $route); 
			$explodedFormat = explode('/', $format);
		}


Массивы $explodedRoute и $explodedFormat содержат в себе следующее:
^ array:2 [▼
  0 => array:3 [▼
    0 => "members"
    1 => "1"
    2 => ""
  ]
  1 => array:2 [▼
    0 => "members"
    1 => "%user_id%"
  ]
]


Как получить из этого параметры для передачи в контроллер и чтобы все параметры собирались в сумму?
Просто может быть route_format таким: members/%user_id%/test/%test_id% и нужно в конечном экшене "test" передавать user_id и test_id. Я не знаю, можно ли сделать это регуляркой, но очень прошу помочь, так как очень туплю на этом моменте.
  • Вопрос задан
  • 84 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
$query = "/members/42";
$pattern = "/^\/members\/(\d+)/";
preg_match($pattern, $query, $match);
var_export($match);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы