Laravel入门使用(路由)
Posted 黑马程序员官方
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel入门使用(路由)相关的知识,希望对你有一定的参考价值。
什么是路由:将用户的请求按照事先规划的方案提交给指定的控制器或者功能函数来进行处理.
在Thinkphp框架中,当我们在URL地址中,传递m、c、a三个参数时,系统会自动跳转到指定模型中指定控制器的指定方法,这些处理过程都是由框架自动完成的。但是,在Laravel框架中,其并没有指定固定参数,其路由必须要手工进行配置。把用户需要访问的全部路由都事先设置好,用户只能访问声明的一些路由,即没有声明的路由是不能被访问的,进而可以对网站的安全有一定的保护作用。
1、路由配置文件
路由文件的位置:项目目录/routes/web.php文件。
2、routes\\web.php配置文件中配置路由
(1)路由定义格式:
Route::请求方式(‘url’,闭包函数);
Route::请求方式(‘url’,’控制器名称@操作方法’); //经常操作
比如我们请求域名下根目录
Route::get('/',function()return 'hello Laravel')
函数的返回值,就是请求的响应。
比如我们请求:域名/home
Route::get('home',function()return 'hello home')
注意点:如果访问一个没有定义的路由,则会报如下错误提示;
(2)请求方式有哪些?
注意:match和any方法请求
match([请求方式1,请求方式2],url,闭包函数) 匹配多个请求方式
any(url,闭包函数) 匹配任意请求方式
match需要设置请求方法数组、URL地址、请求处理参数三个参数,第一个参数要以数组的方式设置允许的请求方法。
any方法对应所有HTTP请求。
(3)默认根路由
问题:为什么当我们在浏览器中访问虚拟域名http://域名时,如何显示Laravel5?
答:主要是受到web.php路由的影响,当我们访问http://域名,系统会自动跳转到web.php路由,然后查看是否有定位到根目录下的get请求,找到如下代码:
然后载入welcome.blade.php视图文件。
注意:在laravel里面,view()函数是加载视图文件的,视图文件的后缀是.blade.php的。
3、路由参数
路由参数主要针对的是GET请求的情况,
语法格式如下:
Route::get('URL/参数名称','闭包函数或控制器响应方法标识')->where('参数名称','正则表达式')
where('参数名称','正则表达式')用来对输入的参数进行限制,只有符合正则表达式要求的参数才可以传递。
案例1:基本用法,必选参数
案例2:可以设置参数的默认值(可选参数)。
语法:
Route::get('URL/参数名称?','闭包函数或控制器响应方法标识')->where('参数名称','正则表达式')
没有参数时,就使用默认值
添加参数时:
此时参数是可选的,当参数存在时,函数参数会正常接收,如果不存在,则会用默认值。
案例3,正则约束
对路由参数进行验证限制,比如只能是数字。
语法:
Route::get('URL/参数名称','闭包函数或控制器响应方法标识')->where('参数名称','正则表达式')
不匹配时,出现如下错误,如下错误表示,路由请求失败。
正常匹配时,
案例4:正则约束多个路由参数案例
->where(['name'=>'[a-zA-Z]','id'=>'\\d+'])
路由参数可以是多个的,where后面的正则约束要使用数组的方式。
不匹配时出现如下错误;
匹配时正常输出
4、路由前缀
比如后台有如下管理员登录,增删改查操作的路由
Route::get('admin/login','');
Route::get('admin/logout','');
Route::get('admin/index','');
Route::get('admin/user/add','');
Route::get('admin/user/del','');
Route::get('admin/user/edit','');
.....
他们的共同点是,都有/admin/前缀,为了管理方便,可以把他们放到一个路由分组中。
使用prefix属性指定路由前缀,
比如,你想要为所有路由URIs前面添加前缀admin
Route::group(['prefix' => 'admin'], function ()
Route::get('users', function ()
// 匹配 "/admin/users" URL
);
);
以上是关于Laravel入门使用(路由)的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5 系列入门教程最适合中国人的 Laravel 教程
Laravel 系列入门教程最适合中国人的 Laravel 教程