ホームページ  >  記事  >  PHPフレームワーク  >  Laravel フレームワークの基本的なルーティング知識をすべて 1 つの記事で学びます

Laravel フレームワークの基本的なルーティング知識をすべて 1 つの記事で学びます

Mini
Miniオリジナル
2020-05-21 15:51:21166ブラウズ

このセクションでは、Laravel フレームワークの詳細なルーティングを主に説明し、主にルーティング、パラメーター、ルール、アクセス コントローラー、その他の操作の定義について説明します。

1. 一般的なルーティングアクション

文法

Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);

一般的なルーティングメソッド

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


またはコントローラーに直接リクエスト

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

任意のリクエストメソッドが一致します

Route::post('/',  'WelcomeController@index');
Route::get('/',  'WelcomeController@index');
Route::delete('/',  'WelcomeController@index');
Route::any(['get', 'post'], '/', function () {
    return view('welcome');
});

ホワイトリスト配列マッチング一致組み合わせ

Route::any(['get', 'post'], '/', 'WelcomeController@index');
Route::match(['get', 'post'], '/', function () {
    return view('welcome');
});

リダイレクトルーティング

Route::match(['get', 'post'],'/', 'WelcomeController@index');

2番目、パラメータルーティング

Route::redirect('/here',  '/404',  404);


通常モードパラメータ

Route::get('user/{id?}', function ($id = 1) {    
    return "用户ID: " . $id;
});
Route::get('page/{id}', function ($id) {    
    return '页面ID: ' . $id;
})->where('id', '[0-9]+');
Route::get('page/{name}', function ($name) {    
    return '页面名称: ' . $name;
})->where('name', '[A-Za-z]+');


3. user.profile でアクセス)

Route::get('page/{id}/{slug}', function ($id, $slug) {    
    return $id . ':' . $slug;
})->where(['id' => '[0-9]+', 'slug' => '[A-Za-z]+']);

// アクセス方法:

Route::get('user/{id?}', function ($id = 1) {    
    return "用户ID: " . $id;
})->name('user.profile');


4. ルーティンググループ化

<a href="{{ route(&#39;user.profile&#39;, [&#39;id&#39; => 100]) }}">

5. ルーティンググループ化、ミドルウェア (2 つの方法 - 汎用 2 番目のタイプ)

Route::group([], function () {     
    Route::get(&#39;hello&#39;, function () {         
        return &#39;Hello&#39;;     
    });     
    Route::get(&#39;world&#39;, function () {         
        return &#39;World&#39;;     
    });
});

または

Route::middleware(&#39;auth:api&#39;)->group(function () {    
    Route::get(&#39;dashboard&#39;, function () {        
        return view(&#39;dashboard&#39;);    
    });    
    Route::get(&#39;account&#39;, function () {        
        return view(&#39;account&#39;);    
    });
});

6. ルーティングパスプレフィックス

Route::group([&#39;middleware&#39; => &#39;auth:api&#39;], function () {     
    Route::get(&#39;dashboard&#39;, function () {         
        return view(&#39;dashboard&#39;);     
    });     
    Route::get(&#39;account&#39;, function () {         
        return view(&#39;account&#39;);     
    });
});

7. ルーティングサブドメイン名

Route::prefix(&#39;api&#39;)->group(function () {    
    Route::get(&#39;/&#39;, function () {        
    // 处理 /api 路由    
    })->name(&#39;api.index&#39;);   
     
    Route::get(&#39;users&#39;, function () {        
    // 处理 /api/users 路由    
    })->name(&#39;api.users&#39;);
});

8.ルーティング名前空間

Route::domain(&#39;{account}.blog.test&#39;)->group(function (){    
    Route::get(&#39;/&#39;, function ($account) {        
        //TODO    
    });    

    Route::get(&#39;user/{id}&#39;, function ($account, $id) {        
        //TODO    
    });
});

ルート名前空間、プレフィックス、グループ、パラメータ、エイリアスの組み合わせ

//ルート名 + パスプレフィックス

Route::namespace(&#39;Admin&#39;)->group(function() {     
    // App\Http\Controllers\Admin\AdminController     
    Route::get(&#39;/admin&#39;, &#39;AdminController@index&#39;);
});


9. 現在のルートにアクセスします

Route::name(&#39;user.&#39;)->prefix(&#39;user&#39;)->group(function () {    
    Route::get(&#39;{id?}&#39;, function ($id = 1) {        
        // 处理 /user/{id} 路由,路由命名为 user.show        
        return route(&#39;user.show&#39;);    
    })->name(&#39;show&#39;);  
      
    Route::get(&#39;posts&#39;, function () {        
        // 处理 /user/posts 路由,路由命名为 user.posts    
    })->name(&#39;posts&#39;);
});

10ルーティングキャッシュをクリアします

$route  = Route::current();
$name   = Route::currentRouteName();
$action = Route::currentRouteAction();

11. ルーティングキャッシュを削除する

php artisan route:cache


上記の学習の概要, Laravelのルート定義、アクセス方法、ルーティングは初心者にとって非常に便利で、簡単に学ぶことができます。

以上がLaravel フレームワークの基本的なルーティング知識をすべて 1 つの記事で学びますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。