zoukankan      html  css  js  c++  java
  • Laravel5.1 路由(一)

    上一篇随笔我记录了如何创建Laravel项目了,现在我们来学习Laravel的一个基本知识--路由,其实我们在浏览器输入 http://localhost:8000/ 的时候就已经使用到了路由,现在让我们看看它是怎么写的吧,打开routes.php位置:appHttp outes.php

    Route::get('/', function () {
        return view('welcome');
    });

    这就是首页的路由,它返回了一个welcome页面。

    GET路由

    下面 我们就自己生成一个路由吧^.^

    // 注册一条get路由
    Route::get('/hello',function (){
        return 'hello world';
    });

    浏览器中输入:localhost:8000/hello

    POST路由

    首先 我们来弄一个表单:

    Route::get('/hello',function (){
        $token = csrf_token();
        // 生成表单 当点击了Test按钮后触发POST
        return <<<FORM
            <form action="/hello" method="POST">
                <input type="hidden" name="_token" value="{$token}">
                <input type="submit" value="Test"/>
            </form>
    FORM;
    });

    对应的 我们也来弄一个post路由:

    // 这是一条post路由
    Route::post('/hello',function (){
        return 'hello (POST)';
    });

    匹配不同类型请求的路由

    我们可以使用match方法来匹配多种请求类型:

    // 无论get 还是 post 都会返回一个字符串
    Route::match(['get','post'],'/hello',function(){
        return "Hello Laravel!";
    });

    当然可以使用any方法来匹配所有请求类型

    Route::any('/hello',function(){
        return "Hello Laravel!";
    });

    路由必选参数

    // 在路径使用{}来声明参数,之后在匿名函数中接收参数 注意:参数名必须一致
    Route::get('/{user}', function ($user){
        return 'hello ' . $user;
    });

    路由可选参数

    // 可选参数只需要加个 ? 就可以了  然后在匿名函数中指定参数的默认值
    Route::get('/hello/{user?}', function ($user = 'Alex'){
        return 'hello ' . $user;
    });

    对参数进行正则约束

    // user参数只允许输入大小写的字母 其他字符都会报错。
    Route::get('/hello/{user?}', function ($user = 'Alex'){
        return 'hello ' . $user;
    })->where('user','[A-Za-z]+');

    如果在全局范围内约束所有请求的参数,我们可以在 appProvidersRouteServiceProvider.php 中的 boot 方法实现逻辑:

        public function boot(Router $router)
        {
            // 这里是我们要实现的逻辑
            $router->pattern('user','[A-Za-z]+');
    //        $router->patterns()
            parent::boot($router);
        }
  • 相关阅读:
    位置边框深度探索QT窗口系统几何篇2
    下载图片封装一个工具类,搞定图片批量下载
    svn判断通过svnkit,获取最新的revision以及判断某个revsion是否存在
    java路径Java开发中获得非Web项目的当前项目路径
    遍历文件Java中遍历出指定目录中的所有文件
    存储过程程序存储过程编程5
    工具设置Unity3D系列教程使用免费工具在Unity3D中开发2D游戏 第一节
    破解学习Asprise OCR v4.0 64位破解...仅供学习使用
    宽度拉伸9patch图的尺寸尽量为偶数
    nullnull用宏定义swap(x,y)
  • 原文地址:https://www.cnblogs.com/Alex-sk/p/6431014.html
Copyright © 2011-2022 走看看