📅  最后修改于: 2020-10-25 04:20:35             🧑  作者: Mango
路由映射请求URI到特定控制器的方法。在本章中,我们将详细讨论FuelPHP中的路由概念。
路线配置文件位于fuel / app / config / routes.php 。默认的route.php文件定义如下-
'welcome/index', // The default route
'_404_' => 'welcome/404', // The main 404 route
'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),
);
在此, _root_是预定义的默认路由,当使用根路径/来请求应用程序时,将与之匹配(例如http:// localhost:8080 /) 。 _root_的值是控制器和匹配时要解决的操作。 welcome / index解析为Controller_Welcome控制器和action_index操作方法。同样,我们有以下保留的路线。
根-没有指定URI时,默认路由。
403 -被发现时HttpNoAccessException它抛出。
404-当找不到页面时返回。
500-当发现HttpServerErrorException时抛出。
将该路由与请求URI进行比较。如果找到匹配项,则将请求路由到URI。简单的路由描述如下,
return array (
'about' => 'site/about',
'login' => 'employee/login',
);
在这里,关于匹配http:// localhost:8080 / about并解析控制器Controller_Site和操作方法action_about
登录名与http:// localhost:8080 / login匹配,并解析控制器Controller_Login和操作方法action_login
您可以在路由中包含任何正则表达式。 Fuel支持以下高级路由功能-
:any-这与URI中此后的所有内容匹配,与“ nothing”不匹配
:everything −类似于:any,但也匹配“ nothing”
:segment-这仅与URI中的1个段匹配,但该段可以是任何内容
:num-匹配任何数字
:alpha-这匹配任何字母字符,包括UTF-8
:alnum-这匹配任何字母数字字符,包括UTF-8
例如,以下路由匹配URI http:// localhost:8080 / hello / FuelPHP并解析控制器, Controller_Welcome和操作action_hello
'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),
Controller_Welcome中的相应操作方法如下,
public function action_hello() {
$this->name = Request::active()->param('name', 'World');
$message = "Hello, " . $this->name;
echo $message;
}
在这里,我们使用Request类从URL获取名称参数。如果找不到该名称,则我们将World作为默认值。我们将在“请求和响应”一章中学习“请求”类。
FuelPHP支持路由以匹配HTTP方法前缀操作。以下是基本语法。
class Controller_Employee extends Controller {
public function get_index() {
// called when the HTTP method is GET.
}
public function post_index(){
// called when the HTTP method is POST.
}
}
我们可以按照以下配置文件中的HTTP动词将您的URL路由到控制器和操作。
return array (
// Routes GET /employee to /employee/all and POST /employee to /employee/create
‘employee’ => array(array('GET', new Route(‘employee/all')), array('POST',
new Route(‘employee/create'))),
);