• 技术文章 >后端开发 >php教程

    laravel的路由(router)图文详解

    不言不言2018-07-13 14:15:19原创7285
    这篇文章主要介绍了关于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('menu/index');
        }
    }

    跳转到view:

    图片5.png

    @extends('layouts.default')
    @section('content')
    <h5>菜单页</h5>
    @stop
    @section('title','菜单页')

    浏览器效果:

    图片6.png

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

    图片7.png

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

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

    Route::match(['get','post'],'returnReturn','Menu\MenuIndexController@returnReturn');
    Route::any('returnAny','Menu\MenuIndexController@returnAny');

    路由重定向:

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

    Route::redirect('motherfucker','menu',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('staticViewData','static_pages/staticViewData',['name'=>'jack','like'=>'money']);

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

    页面上用法:

    @extends('layouts.default')
    @section('content')
    <h2>this is static view data</h2>
    {{$name}} likes {{$like}}
     
    @stop()
    @section('title','static view data')

    然后浏览器效果:

    图片11.png

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

    Route::view('staticViewData','static_pages/staticViewData',['name'=>'jack','like'=>'money','jump'=>'<a href="/about">']);

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

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

    相关课程推荐:

    最新laravel商城实战视频教程

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

    轻松学会Laravel-基础篇

    以上就是laravel的路由(router)图文详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:laravel的路由
    上一篇:什么是中间件?听灭绝师太趣说laravel中间件(图) 下一篇:Laravel开发环境部署之homestead 安装配置过程(windows系统)
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 一文聊聊php5.4的特性【总结】• PHP重定向的3种方式_PHP教程• PHP获取类中常量,属性,及方法列表的方法_PHP• 坏狼的PHP学习教程之第2天_PHP• php 安全_PHP
    1/1

    PHP中文网