Intereting Posts
Проблемы с отображением японских символов с использованием PHP и MySQL В PHP, imagepng () принимает параметр фильтра. Как эти фильтры влияют на вывод функции? Apache 2.4 + PHP-FPM и заголовки авторизации Настройка представления таблицы html при получении данных через шлюз mysql_real_escape_string () просто создает пустую строку? Автоматически создавать файл кеша с помощью php Как найти среднее значение различий последних N чтений столбца PHP MySQL Переменные сеанса PHP исчезают с перенаправлением заголовка Проверьте, заканчивается ли строка с номером в PHP Как вручную интерполировать строку? Как проверить, является ли переменная в $ _GET Array целым числом? Как получить доступ к пользовательскому атрибуту изображения в list.phtml в Magento Мои правила mod_rewrite не разрешают переменные PHP Напротив nl2br? Это str_replace? Получение профиля пользователя в мессенджере (windows live) connect sdk в php

yii2 правило url с именованным параметром массива типов

как я могу создать правило url с именованным параметром массива типов?

теперь у меня это, работая:

'urlManager' => [ 'rules' => [ 'page/<id:\w+>' => 'cms/page/view', ], ], 

to map 'page / welcome' to module=cms , controller=page , action=view , param $id=welcome

теперь я хотел бы иметь такой URL-адрес, с переменным числом имен папок: /page/folder1/folder2/.../folderN/pagefile

для действия:

 function actionPage(array $folders, string $id) { // expecting: // $folders == [ 'folder1', 'folder2', ..., 'folderN'] // $id == 'pagefile' } 

не знаю, как написать правило. Я не мог найти документацию для синтаксиса правил.

обходные пути тоже приветствуются!

Насколько я знаю, аргументы, переданные в действие контроллера, должны быть строковыми или int, потому что параметры действия контроллера работают с простыми параметрами GET.

Если вы действительно хотите передать массив папок в запросе GET, это должно быть после маршрута, например: controller/action/id?folder[]=folder1name&folder[]=folder2name

Таким образом, $ id будет в области действия контроллера, но вам придется «вручную» перейти через $_GET['folder'] чтобы получить переменное количество папок, которые находятся в строке запроса.