路由到模块/控制器
[模块/控制器/]操作?参数1=值1&参数2=值2..
<?php
// 路由到默认或者绑定模块
Route::get('blog/:id','blog/read');
// 路由到index模块
Route::get('blog/:id','index/blog/read');
// 路由地址中支持多级控制器,使用下面的方式进行设置
Route::get('blog/:id','index/group.blog/read');
// 表示路由到下面的控制器类,
// index/controller/group/Blog
路由到操作方法
@[模块/控制器/]操作
<?php
/**
* 路由到操作方法
*/
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’);
service:
```php
<?php
namespace app\index\service;
class Blog
{
public function read1($id)
{
return 'app\index\service\blog@read1 id = ' . $id;
}
public static function read2($id)
{
return 'app\index\service\blog::read2 id = ' . $id;
}
}
路由到重定向地址
直接看5.1.3 后面的改动就好,变得和 laravel 很相似
如我下面的路由规则定义:
<?php
/**
* 路由重定向
*/
Route::redirect('blog3/:id', 'http://tp5.1.com/blog2/:id', 302);
postman 测试:
路由到模板
tp 也是从 5.1.3 后开始支持的。同理类比 laravel。直接略过了控制器,直接到 view 层而已。
路由:
<?php
/**
* 路由绑定视图
*/
# 不添加参数
Route::view('hello1/:name', 'index@hello');
# 添加参数
Route::view('hello2/:name', 'index@hello2', ['city' => 'shanghai']);
view:
hello1.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>这是一句话而已</h1>
</body>
</html>
hello2.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Hello,{$name}--{$city}!</h1>
</body>
</html>
postman 测试:
路由绑定视图一不携带参数:
路由绑定视图一携带参数: