У меня есть приложение, которое использует несколько префиксов, и, хотя и не часто, добавление префикса также не редкость.Что делает это болезненным, так это то, что метод Router::url()
по умолчанию предполагает, что любой созданный URL-адрес должен наследовать префикс текущей страницы, если префикс явно не указан.
Это кажется очень преднамеренным действием, поэтомуЯ предполагаю, что большинство людей находят это более полезным, чем нет, но я нахожу гораздо более удобочитаемым / поддерживаемым, чтобы просто создавать свои URL-адреса с префиксами, где URL-адрес нужен, и исключать его, когда это не так.Давным-давно я создал AppHelper::url()
для переопределения Helper::url()
, который ничего не предполагает и создает URL-адрес с префиксом, когда он явно запрашивается, и это огромная помощь для ссылок, генерируемых в представлениях.
Однако естьдругой сценарий, который я хотел бы переопределить и не нашел «чистого» способа сделать это.Рассмотрим пользователя, не прошедшего проверку подлинности и добавившего ссылку на ресурс администратора (например, /admin/thing_that_needs_to_be_administered/some_action
).Он нажимает на эту закладку, но не вошел в систему, поэтому он / она перенаправляется.Вместо перенаправления на /users/login
он / она отправляется на /admin/users/login
, которого не существует.Упс.
Кто-нибудь еще нашел способ сделать это, что им действительно нравится?Идея состоит в том, чтобы не устанавливать явно каждый префикс в значение false везде, где выполняется перенаправление.Это просто слишком много обслуживания, когда добавляется префикс.
Я думаю, что это становится проще в Cake 2, но мы работаем на Cake 1.3.
Любые мысли будут высоко оценены.