前言
对于新手而言,你可能只需要会使用Laravel就行了,这也是我第一章没写Laravel生命周期的原因。(~~其实目前我也不是蛮懂,我怕写了被打脸~~)不过,学到后面肯定是要把她(Laravel)摸透的,暂时先留个坑,学会了再来填坑。毕竟,在我写笔记的时候,我也是一个Laravel的新手、初学者。顶多就比你们学在前面一点,所以一些东西我也不是太敢写,怕自己错误的思想误导你们。所以,要是文章有错误,还请在评论中留言我更正,免得博主一人的错误变成大家的错误了。
路由文件—— routes文件夹
上篇文章我有提到routes文件夹里四个文件,web.php、api.php、 console.php 和 channels.php。这些文件都是路由文件,唯一的区别是它们给不同的入口使用。我们初学者主要探讨的还是web.php的用法。
默认路由介绍
默认路由文件
代码语言:javascript复制<?php
Route::get('/', function () {
return view('welcome');
});
对于默认的web.php文件,它里面的路由代表什么呢?
若符合get请求,并定位到"/"路径,就返回'welcome'视图。
我们继续看看'welcome'视图文件,看看究竟是什么?
这就是默认的welcome视图,当我们部署好默认的Laravel项目后,打开浏览器后看到的是Laravel的默认welcome界面,就是web.php路由和welcome.blade.php视图文件起的作用。
基本路由
基本上一个简单的路由规则就是按如下格式:
Route::method('uri',func);
如:
代码语言:javascript复制Route::get('foo', function () {
return 'Hello World';
});
参数名 | 注释 |
---|---|
method: | 请求方式,主要有get|post|put|patch|delete|options |
uri: | 标识符 |
func: | 匿名函数,返回视图文件或者HTML源码 |
多请求路由 match 和 any
match用于匹配多个method,any用于匹配所有类型的请求。
代码语言:javascript复制Route::match(['post', 'get'],'foo', function () {
return 'Hello World';
});#匹配post和get
Route::any('foo', function () {
return 'Hello World';
});#匹配所有类型的请求
路由参数
用于传递参数,比如www.test.com/artice/1,获取ID为1的文章
Laravel路由中,用一对{}来表示路由参数,参数名称写入括号内。然后可以通过$参数名的形式调用
代码语言:javascript复制Route::get('/{name}', function ($name) {
return $name;
});#将参数返回
路由别名
为以后调用路由规则做准备。 用中括号将 "as" => "name" 和 匿名函数包起来形成一个数组,这样就可以给路由添加一个别名了。
PS:别名的关键词是 as
以上个例子为例,路由别名写法如下:
代码语言:javascript复制Route::get('/{name}', ["as" => "name", function ($name) {
return $name;
}]);#一个名叫 name 的路由,可以通过route('name')访问到该条路由规则
路由群组
为便于各类路由规则的管理,将同一个分类下的路由放入一个群组内。 比如:/user/add、/user/delete这种user组别的可以放在user组下的路由规则中 /admin/add、/admin/delete这种admin组别的放在admin组中。这样既方便了管理,又防止了不同类别的路由规则起冲突。具体设置方式如下:
代码语言:javascript复制Route::group(['prefix' => 'user'], function(){
#这里放user组的路由规则
Route::get('add', function () {
return 'add';
});
Route::get('delete', function () {
return 'delete';
});
});
这样其实和以下效果一样,但是避免了过多的路由规则互相干扰,代码也更清晰。
代码语言:javascript复制Route::get('/user/add', function () {
return 'add';
});
路由规则在项目开发中的主要用法
这里控制器的可能有些超纲,控制器是下一章节的内容,这一段落主要介绍开发过程中路由的基本用法。 1. 路由参数 2. 返回视图 3. 转到控制器
路由参数已经写过了,这里重点写一下转到控制器,开发中一般都是转到控制器,让控制器进行处理后返回视图和数据再输出至浏览器。
返回视图的方法可以参照默认的路由规则
代码语言:javascript复制<?php
Route::get('/', function () {
return view('welcome');
});# 返回welcome视图
请求转到控制器的某个方法处理后,再输出。
web.php
代码语言:javascript复制<?php
Route::get('/', function () {
return view('welcome');
});# 默认路由规则
Route::get('/{name}', 'TestController@index');# 转发请求至TestController控制器中的index方法
TestController.php
代码语言:javascript复制<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class TestController extends Controller
{
public function index($name){
return 'TestController' . $name;
}
}
以上只是最简单的用法,结合了路由参数和路由转发至控制器的写法。我相信屏幕前的你应该有更好的想法,那么动动指尖,完成你的想法吧!