thinkphp6路由配置

之前将域名中index.php路径给隐藏掉了,因为index控制器和index方法都是tp6默认访问的,所以在输入localhost/admin也可以直接访问到index控制器里面的index方法,但是实际的访问路径应该是http://localhost/admin/index/index

thinkphp6路由配置_第1张图片

当访问新定义的hello方法时,却一样需要把全部路径才可以访问,直接输入localhost/admin/hello是会报错,提示控制器不存在,只能通过全部路径localhost/admin/index/hello才可以访问,那路径的显露程序太大了,也不优雅;而且在多应用模式下,所有的访问路径都必须带应用名称,真的很不好。这个时候就可以通过路由设置来简化访问路径

thinkphp6路由配置_第2张图片

thinkphp6路由配置_第3张图片

1.路由基本知识

1.1 常用于项目中的路由分为五种:get/post/put/delete/any

Route::get('new/','News/read'); // 定义GET请求路由规则,常用于获取数据库数据
Route::post('new/','News/update'); // 定义POST请求路由规则,常用于前端数据提交
Route::put('new/:id','News/update'); // 定义PUT请求路由规则
Route::delete('new/:id','News/delete'); // 定义DELETE请求路由规则
Route::any('new/:id','News/read'); // 所有请求都支持的路由规则

1.2路由变量

Route::rule('/', 'index'); // 首页访问路由
Route::rule('my', 'Member/myinfo'); // 静态地址路由
Route::rule('blog/:id', 'Blog/read'); // 静态地址和动态地址结合
Route::rule('new/:year/:month/:day', 'News/read'); // 静态地址和动态地址结合
Route::rule(':user/:blog_id', 'Blog/read'); // 全动态地址

 1.3 路由使用注意事项

①路由的使用首先要使用符合规范的命名空间,这样才能控制器才能正常访问;

②然后还要通过引用门面中的路由方法

③多应用模式下,分为应用路由和全局路由。应用内部可以创建admin/route/app.php定义应用内部路由;而根目录下route/app.php是全局路由,一般用配置默认路由,也就是用户访问路由;应用路由的执行要优先于全局路由,也就是程序会先执行应用内的路由。

④在config/route.php文件是全局路由配置,如是否设置强制路由,也就是只能通过路由访问

 // 是否强制使用路由
    'url_route_must'        => true,

1.4 创建应用内部路由,在admin应用下创建route/app.php,并加入以下代码

thinkphp6路由配置_第4张图片

 1.5 定义全局路由,在根目录route/app.php文件中定义全局路由,主要用于前台访问

thinkphp6路由配置_第5张图片

出现错误的原因是开启了强制路由,也就是没有定义过路由的都无法访问,在web应用中并没有定制,所以一样要在web应用下创建route/app.php然后定义内部路由。

thinkphp6路由配置_第6张图片

 但是最后我发现,如果通过localhost/hello也并不能访问web应用下index控制器中的hello方法,只能通过localhost/web/hello访问,也就是感觉全局定义的路由并没有起作用。

thinkphp6路由配置_第7张图片

thinkphp6路由配置_第8张图片 

算了,慢慢学吧~ 

 

 

你可能感兴趣的:(thinkphp,php)