Я обновлял CakePHP с 1.2.10 до 1.3.11, используя « Миграция с CakePHP 1.2 до 1.3 », и я знаю, что должен убедиться, что мои маршруты совместимы с 1.3.
Однако мои маршруты не делают ничего несовместимого:
Это больше не поддерживается, поскольку жадные звезды в середине маршрута ведут себя хаотично и усложняют компиляцию маршрутов.За пределами этих двух особенностей пограничного случая и вышеуказанных изменений маршрутизатор ведет себя точно так же, как и в 1.2
Другой крайний случай:
Первые сегменты пути, использующие полныйрегулярные выражения были удалены.
Как ведут себя мои маршруты:
- При открытии домашней страницы не работает , однако на 1.2 он успешно соответствует маршруту# 1 (решено Ivo)
- / lv / products * не работает *.Должен совпадать с # 6 с использованием контроллера «Products» и действия по умолчанию «index», но считает, что «lv» является контроллером (игнорируя параметр: lang)
- / lv / products / index работает!
- / lv / products / view / productname works!
Cake выдает ошибки, подобные этой ошибке (копируется при открытии / lv /продукты :
Missing Controller
Error: LvController could not be found.
Error: Create the class LvController below in file: app\controllers\lv_controller.php
<?php
class LvController extends AppController {
var $name = 'Lv';
}
?>
Мои маршруты:
//Route #1: This route should have worked as a root route, because we have a default for :lang. But now i cannot open up the homepage if i don't define explicit "/" route
Router::connect("/:lang/",
array("controller" => "start", "lang" => "lv"),
array("lang" => "[a-z]{2}")
);
//#2 This route seems to work ok.
Router::connect("/admin/:lang/:controller/:action/*",
array("lang" => "lv", "admin" => true),
array("lang" => "[a-z]{2}")
);
// ==============================================================================
//#3 Routes with static parts - works
Router::connect("/:lang/info/*",
array("controller" => "sections", "action" => "view", "lang" => "lv"),
array("lang" => "[a-z]{2}")
);
//#4
Router::connect("/:lang/news",
array("controller" => "news", "action" => "listall", "lang" => "lv"),
array("lang" => "[a-z]{2}")
);
//#5
Router::connect("/:lang/employees",
array("controller" => "employees", "action" => "index", "lang" => "lv"),
array("lang" => "[a-z]{2}")
);
// ==============================================================================
//#6 Catch all route.
Router::connect("/:lang/:controller/:action/*",
array("lang" => "lv"),
array("lang" => "[a-z]{2}")
);
Спасибо за любую помощь.