laravel的路由(router)图文详解

不言
发布: 2023-04-03 07:08:01
原创
9199 人浏览过

这篇文章主要介绍了关于laravel的路由(router)图文详解,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

laravel的路由(router)图文详解

laravel基础的路由:

在/routes/web.php里面, 写一个

Route::get('/hello',function(){
    return 'hello , can you hear me ?';
});
登录后复制

然后就能在浏览器里

图片2.png

postman也可以直接看到

图片1.png

原文:

图片3.png

我们先试一下调用控制器:

Route::get('/menu','Menu\MenuIndexController@index');
登录后复制

这就是直接get请求发送about, 调用StaticPagesController控制器的about方法

图片4.png

<?php
namespace App\Http\Controllers\Menu;//修改命名空间
use App\Http\Controllers\Controller;//引用基础controller
use Illuminate\Http\Request;
class MenuIndexController extends Controller
{
    //
    public function index(){
        return view(&#39;menu/index&#39;);
    }
}
登录后复制

跳转到view:

图片5.png

@extends(&#39;layouts.default&#39;)
@section(&#39;content&#39;)
<h5>菜单页</h5>
@stop
@section(&#39;title&#39;,&#39;菜单页&#39;)
登录后复制

浏览器效果:

图片6.png

定义在routes/api.php文件中的路由通过app/Providers/RoutesServiceProvider的处理被嵌套在一个路由中间件组中, 在这个路由中间件组中, 所有路由会被自动添加/api前缀, 所以你不需要再到路由文件中为每个路由手动添加, 你可以通过编辑RouteServiceProvider类来修改路由前缀以及其他的路由中间件组选项;

图片7.png

这一坨就别去改动了, 底层的东西改了不知道会发生什么神奇的事情;

有时候还需要注册一个路由响应多种 HTTP 请求动作 —— 这可以通过 match 方法来实现。或者,可以使用 any 方法注册一个路由来响应所有 HTTP 请求动作:

Route::match([&#39;get&#39;,&#39;post&#39;],&#39;returnReturn&#39;,&#39;Menu\MenuIndexController@returnReturn&#39;);
Route::any(&#39;returnAny&#39;,&#39;Menu\MenuIndexController@returnAny&#39;);
登录后复制

路由重定向:

如果需要定义一个重定向到其他URI路由, 可以使用Route::redirect

Route::redirect(&#39;motherfucker&#39;,&#39;menu&#39;,301);
登录后复制

浏览器输入motherfucker就会蹦到menu;

301是一个状态码,默认301,原文:

图片8.png

当然还有需要直接跳转到视图层(view), 然后其余数据(maybe whole data)都由api提供获取, 那么直接跳到视图的路由是这么玩的:

Route::view('staticView','static_pages/staticView');

注意, 这里的static_pages/staticView是用的正斜杠, 反斜杠会报错说can not found static_pages\staticView;

静态页面位于:

图片9.png

浏览器直接访问效果:

图片10.png

当然还有另外一种骚操作, 就是Route::view传递第三个参数, 用于视图中的数据渲染

Route::view(&#39;staticViewData&#39;,&#39;static_pages/staticViewData&#39;,[&#39;name&#39;=>&#39;jack&#39;,&#39;like&#39;=>&#39;money&#39;]);
登录后复制

传递过去的数组自然就是['name'=>'jack','like'=>'money'],

页面上用法:

@extends(&#39;layouts.default&#39;)
@section(&#39;content&#39;)
<h2>this is static view data</h2>
{{$name}} likes {{$like}}
 
@stop()
@section(&#39;title&#39;,&#39;static view data&#39;)
登录后复制

然后浏览器效果:

图片11.png

当然了你要皮, 那自然是不可以的:

Route::view(&#39;staticViewData&#39;,&#39;static_pages/staticViewData&#39;,[&#39;name&#39;=>&#39;jack&#39;,&#39;like&#39;=>&#39;money&#39;,&#39;jump&#39;=>&#39;<a href="/about">&#39;]);
登录后复制

源代码会把标签给当作普通文字解析, 前后加上< &rt;

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关课程推荐:

最新laravel商城实战视频教程

全方位解读Laravel框架及实战视频教程

轻松学会Laravel-基础篇

以上是laravel的路由(router)图文详解的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板