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']]);
Другие вопросы по тегам