03.视图和路由分组
goer ... 2022-01-08 大约 2 分钟
[toc]
# 视图
视图(
MVC
)中的 V 部分 页面能看到部分
// 视图文件 resources/views/welcome.php -- 欢迎页面的视图文件
新建就行了
<h3>this is a task page</h3>
1
2
3
2
3
视图路由,有三个参数:1.URI(必);2.名称(必);3.参数(选)
如果 是 resources/views/home/index.blade.php
view('home.index')
// 视图路由
Route::view('task','task'); //视图新建task.php -> xx.blade.php
// 带参数
Route::view('task','task',['id'=>10])
//视图接收参数 {{$id}}
1
2
3
4
5
6
2
3
4
5
6
注意:视图文件一定要
xx.blade.php
不然路由参数不能带过去
// 其他两种路由视图 通过view助手函数
Route::get('task',function (){
return view('task',['id'=>1]);
}); //view参数1 视图文件 参数2:带的参数
1
2
3
4
5
2
3
4
5
最常用的一种
// 类似tp里面 在控制器内用view助手函数
public function index(){
return view('task',['id'=>1]);
}
1
2
3
4
2
3
4
# 路由分组和命名
命名:对路由进行重命名
route() 注释函数 参数一:路由名称 参数二:参数 参数三:true/false(域名)
//命名 一般:控制器.方法
Route::get('task','TaskControllers@index')
->name('task.index'); //重命名
//控制器 助手函数 route()来获取路由生成的 URL 地址
public function index(){
$url = route('task.index'); //接受到重新命名的路由
return view('task',['id'=>1,'url'=>$url]);
}
//视图 this url:http://127.0.0.1:8000/task
<h6>this url:{{$url}}</h6>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
也可以在路由助手传参
$url = route('task.index',['id'=>1]);
// 视图接受到的是 ?id this url:http://127.0.0.1:8000/task?id=1
// 如果想变为 /id=1 配对好参数
Route::get('task/{id}','TaskControllers@index')
->name('task.index');
1
2
3
4
5
6
7
2
3
4
5
6
7
重定向:注释函数 redirect
// 新建一个控制器方法 和 一个路由
Route::get('task/url','TaskControllers@url');
public function url(){
// 助手重定向
return redirect()->route('task.html',['id'=>1]);
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
分组:路由分组功能是为了让大量路由共享路由属性,包括中间件、命名空间等; group()
// 定义空的路由列表
// 路由分组
Route::group([],function (){
Route::get('sex',function (){
return 'sex page';
});
Route::get('sex/s/{id}',function ($id=1){
return 'sex s page id='.$id;
})->where('$id','[0-9]+');
});
// 设置路由路径前缀 -- 不推荐
Route::group(['prefix'=>'api'],function (){
Route::get('sex',function (){
return 'sex page';
});
Route::get('sex/s/{id}',function ($id=1){
return 'sex s page id='.$id;
})->where('$id','[0-9]+');
});
// 推荐这种写法 -- 推荐
Route::prefix('api')->group(function (){
Route::get('sex',function (){
return 'sex page';
});
Route::get('sex/s/{id}',function ($id=1){
return 'sex s page id='.$id;
})->where('$id','[0-9]+');
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 都有两种方法 -- 推荐用第二种
- 中间件
middleware(['中间件'])
- 路由路径前缀
prefix('api')
-- 路由前面加一个api- 设置子域名
domain('127.0.0.1')
-- 只有这样域名能访问 localhost也不行- 命名空间
namespace('')
-- 设置命名空间,让命名空间分配给控制器,让其得以访问