• Laravel5.1 路由(二)


    昨天写了一篇Laravel的路由笔记,Laravel的路由还有很多功能,我今天继续学一些路由的知识

    重定向

    我们可以使用redirect方法来实现重定向,我们来看一个简单的重定向:

    Route::get('/user/{id}', function ($id){
        if ($id <= 0){
            return redirect('/');
        } else {
            return 'hello';
        }
    });

    当满足一些逻辑后,使用redirect跳转到别的视图。

    路由命名

    路由命名就是为路由起一个名字,这样我们在重定向时 可是使用路由的名字,就不用输入那些复杂的路径了。使用 as 关键字来为路由命名:

    // 把第二个参数改成一个数组,里面指定一些键值配置,和一个闭包。
    Route::get('/hello/laravel',['as' => 'laravel',function(){
        return 'Hello Laravel';
    }]);
    
    // 生成一个测试重定向的路由
    Route::get('/test/redirect',function (){
        // 我们在跳转时,只需要在route方法中传入路由名就可以实现跳转。
        return redirect()->route('laravel');
    });

    在实际开发中 我们或许会在重定向时为路由传入参数,可以这么写:

    路由分组

    路由分组给我们带来了很多便利,当一些路由具有相同的属性时,我们可以使用路由分组将他们包含起来,路由的属性有:

    • 中间件
    • 路由前缀
    • 子域名
    • 命名空间

    其中中间件和命名空间在之后的章节中做记录,我们先来看看路由前缀和子域名的使用。

    子域名

    子域名我们可以使用domain来声明:

    // 定义一个路由分组,domain传进一个参数:
    Route::group(['domain'=>'{service}.laravel.app'], function (){
        Route::get('/write/laravel', function ($service){
            return "Write FROM {$service}.laravel.app";
        });
        Route::get('/update/laravel', function ($service){
            return "Update FROM {$service}.laravel.app";
        });
    });

    当我们在浏览器中访问:http://write.laravel.app:8000/write/laravel 时,则会输出:

    Write FROM write.laravel.app

    当我们访问:http://update.laravel.app:8000/update/laravel 时,输出:

    Update FROM update.laravel.app

    注意:我们要让子域名生效 需要在hosts文件中绑定IP地址。

    路由前缀

    我们使用prefix来指定路由前缀:

    Route::group(['prefix' => 'laravel'], function (){
        Route::get('/write', function (){
            return 'Write laravel';
        });
        Route::get('/update', function (){
            return 'Update laravel';
        });
    });

    这样的话我们只需要访问:localhost:8000/laravel/write 和 localhost:8000/laravel/update 即可。

    有些时候 我们还可以指定带参数的prefix:

    Route::group(['prefix' => 'laravel/{version}'], function (){
        Route::get('/write', function ($version){
            return 'Write laravel' . $version;
        });
        Route::get('/update', function ($version){
            return 'Update laravel' . $version;
        });
    });
  • 相关阅读:
    Linux安装和配置java
    动态代理:JDK动态代理和CGLIB代理的区别
    常用算法复习
    Linux重新学习
    oracle复杂查询是sql
    oracle触发器
    oracle存储过程
    oracle数据库操作
    java知识回顾
    Spring AOP简述
  • 原文地址:https://www.cnblogs.com/Alex-sk/p/6432707.html
Copyright © 2020-2023  润新知