路由绑定

可以使用路由绑定简化URL或者路由规则的定义,绑定支持如下方式:

绑定到模块/控制器/操作

把当前的URL绑定到模块/控制器/操作,最多支持绑定到操作级别,例如在路由配置文件中添加:

						// 绑定当前的URL到
							index模块 Route::bind('index');
							//
							绑定当前的URL到
							index模块的blog控制器 Route::bind('index/blog');
							//
							绑定当前的URL到
							index模块的blog控制器的read操作 Route::bind('index/blog/read');
						
					

该方式针对路由到模块/控制器/操作有效,假如我们绑定到了index模块的blog控制器,那么原来的访问URL从

						
							http://serverName/index
							/blog/read
							/id/
							5
						
					

可以简化成

						
							http://serverName/read
							/id/
							5
						
					

如果定义了路由

						
							Route::get('index/blog/:id','index/blog/read');
						
					

那么访问URL就变成了

						
							http:
							//serverName/5
						
					

绑定到命名空间

把当前的URL绑定到某个指定的命名空间,例如:

						
							// 绑定命名空间
							Route::bind('\app\index\controller','namespace');
						
					

那么,我们接下来只需要通过

						http://serverName/blog/read/id/
							5
						
					

就可以直接访问\app\index\controller\Blog类的read方法。

绑定到类

把当前的URL直接绑定到某个指定的类,例如:

						
							// 绑定到类
							Route::bind('\app\index\controller\Blog','class');
						
					

那么,我们接下来只需要通过

						
							http://serverName/read
							/id/
							5
						
					

就可以直接访问\app\index\controller\Blog类的read方法。

注意:绑定到命名空间和类之后,不会进行模块的初始化工作。

入口文件绑定

如果我们需要给某个入口文件绑定模块,可以使用下面两种方式:

常量定义

只需要入口文件添加BIND_MODULE常量,即可把当前入口文件绑定到指定的模块或者控制器,例如:

						
							// 定义应用目录
							
								define
							('APP_PATH', __DIR__ .
							'/../application/');
							// 绑定到index模块
							
								define
							('BIND_MODULE','index');
							// 加载框架引导文件
							require
							__DIR__ .
							'/../thinkphp/start.php';
						
					

自动入口绑定

如果你的入口文件都是对应实际的模块名,那么可以使用入口文件自动绑定模块的功能,只需要在应用配置文件中添加:

						
							// 开启入口文件自动绑定模块
							'auto_bind_module'
							=>
							true,
						
					

当我们重新添加一个public/demo.php入口文件,内容和public/index.php一样:

						
							// 定义应用目录
							
								define
							('APP_PATH', __DIR__ .
							'/../application/');
							// 加载框架引导文件
							require
							__DIR__ .
							'/../thinkphp/start.php';
						
					

但其实访问demo.php的时候,其实已经自动绑定到了demo模块。

文档最后更新时间:2018-04-25 19:35:10

文档
目录

深色
模式

切换
宽度