-->

PHP资讯

您的当前位置:首页 > 资讯 > Laravel框架

laravel整理-2路由routes

2019-06-23 18:07:53  来源:admin 点击:1260

laravel路由介绍

    Laravel框架在项目运行启动的时候对于每一个访问的控制器方法,都是需要定义路由的,不支持pathinfo的方式。而为什么需要定义路由,这个问题要归根于路由的作用为了美化与访问的url地址,同时保护实际的连接地址。

1.根据事先定义的路由规则,检验URL请求,确定执行或者拒绝

2.路由规则可以自定义,隐藏了原URL地址,使访问更安全,地址更优雅,利于seo优化 

基本路由

laravel中路由全部定义在根目录的routes的目录下(路由的基础操作使用)

image.png


j简单路由对于laravel来说路由是很强大的,目前我们使用的是路由到闭包,初次之外我们可以路由到控制器,视图。路由到控制器语法:Route::get(‘路由名’, ‘控制器名@方法’)

image.png

我们可以注册路由来响应的HTTP请求动作有,

image.png

Web的路由默认实现了VerifyCsrfToken中间件。我们也可以使用matchany定义路由来响应多种请求方式Route::match([‘请求方式’], ‘路由名’, $callback);

Route::any($‘路由名’, $ callback);

注意这两个方法的区别,他们都可以允许多种http请求的方式访问对应的方法或者必包。有所不同点是any是允许所有的请求,match这是需要自己规定允许请求的内容。

image.png

以及路由重定向与路由视图
image.png




CSRF保护Csrf主要是laravel对于系统提供的一个保护措施,可以避免跨站点请求伪造恶意的攻击。Laravel 会对于每一个访问的用户生成一个csaf的令牌。然后用户进入系统的时候就会携带这个令牌当然我们可以在App/http/Middleware/VerifyCsrfToken 中配置我们不需要进行检查的路由。数组用逗号隔开。image.png


l路由参数这个点很重要,因为laravel的强制定义路由,而我们在项目操作过程中我们往往会需要传递一些参数,给我们的控制器或者闭包中。而这些参数传递的传递也可以在路由当中进行传递image.png向上面那样的一种方式传递。但是出现问题了,参数并没有如我们所期望的那样$name$password中的内容的值刚刚好相反。其实这是很正常的因为laravel中参数的传递是依次被注入的,也就是说会根据参数的位置传递的先后顺序传递的,而不是根据回调的参数名称影响。注意:路由参数通常都会被放在{}内,并且参数名只能为字母,同时路由参数不能包含 - 符号,如果需要可以用 _ 代替。除了这个外我们可能有些时候对于一些参数是可选传递的方式,我们可以通过在参数之后添加 ? 来确定 但前提是要确保路由的相应变量有默认值image.png我们可以对于这些路由的参数进行校验,通过正则的方式。可以通过where的方式约束。关于where 的使用我们也可以这样 where(‘name’, ‘[A-Za-z]’);image.png



路由组因为在项目中我们往往是需要定义很多路由的而对于这些路由我们可以通过路由组进行很好的管理。除此之外,路由组还允许共享路由属性,命名空间,前缀,中间件等,这样我们就可以没必要为每一个路有单独共有属性,共有属性会以数组的形式放到Route::group方法的参数中比如:我们对于商城首页的访问添加一个前缀shopimage.png我们在group中的第一个参数中定义之后,之后的路由就可以不用再进行一一的定义,除了这点外我们还可以添加中间件,命名空间等
image.png当然除了这种方式提供共享以外。实际上laravel也是有提供对应的方法分别是

中间件 middleware

命名空间:namespace

子域名路由:domain

路由前缀:prefix

路由名称前缀:name这些方法。如下

image.png


l路有加载流程

image.png

当我们通过请求访问laravel框架的时候,这个时候就会进入到index.php中,然后在index.php中,对于Application类创建,并解析出kernel类。然后加载项目的基础的服务。在这个请求进入到项目之后这个时候laravel就会先加载路由的服务,在路由的服务中把我们在routes目录下所定义的路由文件进行加载,并且会吧期注册在路由表中。当请求laravel的时候,会获取访问的请求,根据请求去路由表中进行对应路由的匹配,如果说存在就会对于路由中所定义的控制器进行一部创建,同时也会执行里面的方法。最后把执行之后的结果进行输出返回。

l路由运用在项目开发的过程中,因为laravel的规则就是每一个需要访问的控制器中的方法,是必须要定义一个路由。我们在定义过程中我们可能需要定义很多的路由
image.pngimage.pngimage.png

b补充内容
内容区域

相关文章更多 >

© 2024版权所有 水水网

电话:171780793