路由到模块/控制器

[模块/控制器/]操作?参数1=值1&参数2=值2..

  1. <?php
  2. // 路由到默认或者绑定模块
  3. Route::get('blog/:id','blog/read');
  4. // 路由到index模块
  5. Route::get('blog/:id','index/blog/read');
  6. // 路由地址中支持多级控制器,使用下面的方式进行设置
  7. Route::get('blog/:id','index/group.blog/read');
  8. // 表示路由到下面的控制器类,
  9. // index/controller/group/Blog

路由到操作方法

@[模块/控制器/]操作

  1. <?php
  2. /**
  3. * 路由到操作方法
  4. */
  5. Route::get('blog/:id', '@index/blog/read');

路由到类的方法

  • 路由地址的格式为(动态方法):

    • \类的命名空间\类名@方法名
  • 或者(静态方法)

    • \类的命名空间\类名::方法名

使用这种方式的好处是,我们不仅仅将路由和控制器类中的方法进行绑定,我们同样也可以绑定其他类的方法,例如我们可以直接将路由绑定到 service 层

路由:注意下面几点

  • app 左侧的根路径 \ 可以省略
  • 类名称 Blog 不要小写 blog,会报错 ```php <?php

/**

  • 路由绑定到service层的方法 */

绑定非静态方法

Route::get(‘blog1/:id’, ‘\app\index\service\Blog@read1’);

绑定静态方法

Route::get(‘blog2/:id’, ‘\app\index\service\Blog::read2’);

  1. service
  2. ```php
  3. <?php
  4. namespace app\index\service;
  5. class Blog
  6. {
  7. public function read1($id)
  8. {
  9. return 'app\index\service\blog@read1 id = ' . $id;
  10. }
  11. public static function read2($id)
  12. {
  13. return 'app\index\service\blog::read2 id = ' . $id;
  14. }
  15. }

路由到重定向地址

直接看5.1.3 后面的改动就好,变得和 laravel 很相似

如我下面的路由规则定义:

  1. <?php
  2. /**
  3. * 路由重定向
  4. */
  5. Route::redirect('blog3/:id', 'http://tp5.1.com/blog2/:id', 302);

postman 测试:
image.png


路由到模板

tp 也是从 5.1.3 后开始支持的。同理类比 laravel。直接略过了控制器,直接到 view 层而已。

路由:

  1. <?php
  2. /**
  3. * 路由绑定视图
  4. */
  5. # 不添加参数
  6. Route::view('hello1/:name', 'index@hello');
  7. # 添加参数
  8. Route::view('hello2/:name', 'index@hello2', ['city' => 'shanghai']);

view:

hello1.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <h1>这是一句话而已</h1>
  10. </body>
  11. </html>

hello2.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <h1>Hello,{$name}--{$city}!</h1>
  10. </body>
  11. </html>

postman 测试:

路由绑定视图一不携带参数:
image.png

路由绑定视图一携带参数:
image.png