это мой первый пост здесь:)
У меня возникли некоторые трудности при работе с URL-адресами и параметрами.Я снова и снова просматривал документацию по API класса роутера и не нашел ничего полезного.
Прежде всего, я хотел бы знать, существует ли какой-либо «универсальный» формат в CakePHP (1.3) для обработкиURLs.В настоящее время я обрабатываю все свои URL как простые массивы (в формате, который принимает Router :: url и $ html-> link), и это легко, если мне нужно только передать их в качестве аргументов собственным методам тортов.Обычно бывает сложно, если мне нужно что-то еще.
В основном у меня проблемы с преобразованием строковых URL в базовый формат массива.Допустим, я хочу преобразовать $ arrayUrl в строку, а затем снова в URL:
$arrayUrl=array('controller'=>'SomeController','action'=>'someAction','someValue');
$url=Router::url($arrayUrl); //$url is now '/path/to/site/someController/someAction/someValue'
$url=Router::normalize($url); //remove '/path/to/site'
$parsed=Router::parse($url); /*$parsed is now
Array(
[controller] => someController
[action] => someAction
[named] => Array()
[pass] => Array([0] => someValue)
[plugin] =>
) */
Кажется, очень много кода, чтобы сделать что-то столь же простое, как преобразование между двумя основными форматами.Также обратите внимание, что $ parsed по-прежнему не совпадает с $ arrayUrl.Конечно, я мог бы настроить $ parsed вручную, и на самом деле я сделал это несколько раз как быстрый патч, но я бы хотел докопаться до сути.
Я также заметил, что при использовании префиксной маршрутизации,$ this-> params в контроллере имеет префикс, встроенный в действие (то есть [action] => 'admin_edit'), а результат Router :: parse () - нет.Оба, конечно, имеют префикс в своем собственном ключе.
Подводя итог, как мне правильно преобразовать URL между любым из этих 3 (или 4, если вы включили префикс) упомянутых форматов?Конечно, было бы легко взломать мой путь через это, но я все еще хотел бы верить, что торт разрабатывается группой людей, которые имеют намного больше опыта и проницательности, чем я, поэтому я предполагаю, что есть хорошийпричина этого "воспринимаемого неправильного поведения".
Я пытался изложить свою проблему настолько хорошо, насколько могу, но из-за моих ржавых навыков английского мне пришлось сделать несколько обходных путей :) Я объясню большеесли нужно.