thinkphp6-路由


配置路由

路由配置文件 /route/app.php

<?php
use think\facade\Route;

Route::rule('index/create', 'index/create');
Route::rule('index/read', 'index/read');
Route::rule('index/update', 'index/update');
Route::rule('index/delete', 'index/delete');

控制器 /app/controller/Index.php

<?php
namespace app\controller;

use app\BaseController;

class Index extends BaseController
{
    public function index()
    {
        return 'hello,welcome to thinkphp6!';
    }

    public function create(){
        return 'create';
    }

    public function read(){
        return 'read';
    }

    public function update(){
        return 'update';
    }

    public function delete(){
        return 'delete';
    }
}

測試url

http://127.0.0.1:8000/index
http://127.0.0.1:8000/index/create
http://127.0.0.1:8000/index/read
http://127.0.0.1:8000/index/update
http://127.0.0.1:8000/index/delete

路由定義

Route::rule('new/:id','News/read','POST');
Route::get('new/<id>','News/read'); // 定義GET請求路由規則
Route::post('new/<id>','News/update'); // 定義POST請求路由規則
Route::put('new/:id','News/update'); // 定義PUT請求路由規則
Route::delete('new/:id','News/delete'); // 定義DELETE請求路由規則
Route::any('new/:id','News/read'); // 所有請求都支持的路由規則
Route::rule('/', 'index'); // 首頁訪問路由
Route::rule('my', 'Member/myinfo'); // 靜態地址路由
Route::rule('blog/:id', 'Blog/read'); // 靜態地址和動態地址結合
Route::rule('new/:year/:month/:day', 'News/read'); // 靜態地址和動態地址結合
Route::rule(':user/:blog_id', 'Blog/read'); // 全動態地址
Route::get('blog/:year/[:month]','Blog/archive');
Route::get('new/:cate$', 'News/category');
Route::redirect('blog/:id', 'http://blog.thinkphp.cn/read/:id', 302);

變量規則

// 定義GET請求路由規則 並設置name變量規則
Route::get('new/:name', 'News/read')
    ->pattern(['name' => '[\w|\-]+']);
// 支持批量添加
Route::pattern([
    'name' => '\w+',
    'id'   => '\d+',
]);

路由參數

參數    說明    方法名
ext    URL后綴檢測,支持匹配多個后綴    ext
deny_ext    URL禁止后綴檢測,支持匹配多個后綴    denyExt
https    檢測是否https請求    https
domain    域名檢測    domain
complete_match    是否完整匹配路由    completeMatch
model    綁定模型    model
cache    請求緩存    cache
ajax    Ajax檢測    ajax
pjax    Pjax檢測    pjax
json    JSON檢測    json
validate    綁定驗證器類進行數據驗證    validate
append    追加額外的參數    append
middleware    注冊路由中間件    middleware
filter    請求變量過濾    filter

用法:

Route::get('new/:id', 'News/read')
    ->ext('html')
    ->https();
Route::get('new/:id', 'News/read')
    ->option([
        'ext'   => 'html',
        'https' => true
    ]);
Route::get('new/:name$', 'News/read')
    ->cache(3600);

路由中間件

Route::rule('hello/:name','hello')
    ->middleware(\app\middleware\Auth::class);
Route::rule('hello/:name','hello')
    ->middleware([\app\middleware\Auth::class,\app\middleware\Check::class]);

全局 config/route.php

'middleware'    =>    [
    app\middleware\Auth::class,
    app\middleware\Check::class,
],

miss路由

Route::miss('public/miss');
Route::miss(function() {
    return '404 Not Found!';
});

跨域請求

Route::get('new/:id', 'News/read')
    ->ext('html')
    ->allowCrossDomain();
Route::get('new/:id', 'News/read')
    ->ext('html')
    ->allowCrossDomain([
        'Access-Control-Allow-Origin'        => 'thinkphp.cn',
        'Access-Control-Allow-Credentials'   => 'true',
        'Access-Control-Max-Age'             => 600,
    ]);

URL生成

$url = \think\facade\Route::buildUrl();
$url = \think\facade\Route::buildUrl('index/read', ['id' => 5]);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM