F3: перенаправление на динамический URL
У меня возникают трудности с перенаправлением динамического URL-адреса из моего контроллера.
в маршрутах
GET /admin/profiles/patient/@patientId/insert-report = Admin->createReport
в контроллере Admin.php, в методе createReport():
$patientId = $f3->get('PARAMS.patientId');
Моя попытка (в Admin.php):
$f3->reroute('admin/profiles/patient/' . echo (string)$patientId . '/insert-report');
Вопрос: Как перенаправить на тот же URL-адрес (где будут отображаться некоторые сообщения об ошибках), не меняя полностью маршрутизацию, то есть прикрепляя PatientId в качестве параметра запроса URL-адреса?
Спасибо, К.
1 ответ
echo
оператор не нужен для объединения строк:
$f3->reroute('admin/profiles/patient/' . $patientId . '/insert-report');
Вот 3 других способа получить тот же результат:
1) построить URL из текущего шаблона
(полезно для перенаправления на тот же маршрут с другим параметром)
// controller
$url=$f3->build($f3->PATTERN,['patientId'=>$patientId]);
$f3->reroute($url);
2) перенаправить на тот же шаблон, те же параметры
(полезно для перенаправления с POST/PUT/DELETE на GET того же URL)
// controller
$f3->reroute();
3) построить URL из названного маршрута
(полезно для перенаправления на другой маршрут)
;config file
GET @create_report: /admin/profiles/patient/@patientId/insert-report = Admin->createReport
// controller
$url=$f3->alias('create_report',['patientId'=>$patientId']);
$f3->reroute($url);
или сокращенный синтаксис:
// controller
$f3->reroute(['create_report',['patientId'=>$patientId']]);