• think PHP URL生成


    定义路由规则之后,我们可以通过Url类来方便的生成实际的URL地址(路由地址),针对上面的路由规则,我们可以用下面的方式生成URL地址。

    // 输出 blog/thinkphp
    Url::build('blog/read', 'name=thinkphp');
    Url::build('blog/read', ['name' => 'thinkphp']);
    // 输出 blog/5
    Url::build('blog/get', 'id=5');
    Url::build('blog/get', ['id' => 5]);
    // 输出 blog/2015/05
    Url::build('blog/archive', 'year=2015&month=05');
    Url::build('blog/archive', ['year' => '2015', 'month' => '05']);

    提示:


    build方法的第一个参数使用路由定义中的完整路由地址。

    我们还可以使用系统提供的助手函数url来简化

    url('blog/read', 'name=thinkphp');
    // 等效于
    Url::build('blog/read', 'name=thinkphp');
    

    通常在模板文件中输出的话,可以使用助手函数,例如:

    {:url('blog/read', 'name=thinkphp')}
    

    如果我们的路由规则发生调整,生成的URL地址会自动变化。

    如果你配置了url_html_suffix参数的话,生成的URL地址会带上后缀,例如:

    'url_html_suffix'   => 'html',
    

    那么生成的URL地址 类似

    blog/thinkphp.html 
    blog/2015/05.html
    

    如果你的URL地址全部采用路由方式定义,也可以直接使用路由规则来定义URL生成,例如:

    url('/blog/thinkphp');
    Url::build('/blog/8');
    Url::build('/blog/archive/2015/05');
    

    生成方法的第一个参数一定要和路由定义的路由地址保持一致,如果你的路由地址比较特殊,例如使用闭包定义的话,则需要手动给路由指定标识,例如:

    // 添加hello路由标识
    Route::rule(['hello','hello/:name'], function($name){
        return 'Hello,'.$name;
    });
    // 根据路由标识快速生成URL
    Url::build('hello', 'name=thinkphp');
    // 或者使用
    Url::build('hello', ['name' => 'thinkphp']);
    

    目前为止,我们掌握的路由功能还只是ThinkPHP5.0路由功能的冰山一角,以后我们还会通过更多的专题来讲解路由。

    【 5.1 】使用须知


    5.1版本,你需要引入thinkfacadeUrl才能使用静态方法调用,其它用法不变。

  • 相关阅读:
    [leetcode] Bulls and Cows
    Win7 系统所有应用颜色调整
    一道题反映Java的类初始化过程
    翻转二叉树(深搜-先序遍历-交换Node)
    在一个数组中,除了两个数外,其余数都是两两成对出现,找出这两个数,要求时间复杂度O(n),空间复杂度O(1)
    一道随机函数题:由rand5()生成rand7()
    求一条直线通过的最大点数
    菜根谭#236
    菜根谭#235
    菜根谭#234
  • 原文地址:https://www.cnblogs.com/xu1115/p/10983088.html
Copyright © 2020-2023  润新知