3 基础:路由地址

 

 

一 路由到控制器和方法

1)普通路由

//1 默认Index控制器
Route::rule('/','index');
http://www.blog.com/admin

//2 一般都是路由到 控制器/方法
Route::rule('news/:id','News/index');
http://www.blog.com/admin/news

 

 2)路由到 多级控制器

//1 多级控制器的定义
文件所在目录 admin/controller/father/Son.php
<?php
namespace app\admin\controller\father;
class Son
{
    public function index(){
        return '我是多级目录';
    }
}

//2 多级控制器的访问
http://www.blog.com/admin/father.son/index

//3 路由到多级控制器
Route::rule('son','father.son/index');
http://www.blog.com/admin/son

 3)路由到动态应用、控制器 或者操作

 二 路由到类

路由到类 支持任何类的方法 而不是局限于控制器的方法


//语法1  类名@方法名
Route::rule('news','\app\admin\controller\news@hello');
http://www.blog.com/admin/news 成功访问到


//语法2 类名::方法名
Route::rule('news','\app\admin\controller\news::hello'); http://www.blog.com/admin/news 成功访问到

  

三 重定向路由
Route::redirect('blog/:id', 'http://blog.thinkphp.cn/read/:id', 302);
Route::redirect('news','https://www.baidu.com','302');

四 路由到模板

Route::view('news/:name','News/index',['city'=>'bj']);

可以获取到 city的变量 bj 但是获取不到 地址栏传递的 name 变量 ?
  模板页面输出:Hello,{$name}--{$city}!

五  路由到响应对象

Route::get('hello/:name', response() ->data('Hello,ThinkPHP') ->code(200) ->contentType('text/plain'));

使用场景:更多的情况是直接对资源文件的请求设置404访问
  对于不存在的static目录下的资源文件设置404访问  Route::get('static', response()->code(404));
 

六 路由到闭包

Route::get('hello', function () {
return 'hello,world!';
});

可以在闭包中传入参数

闭包支持依赖注入

 

 

posted @ 2021-01-13 07:26  棉花糖88  阅读(152)  评论(0)    收藏  举报