ホームページ > バックエンド開発 > PHPチュートリアル > Laravel 514 + Bootstrap 334 注 2: Laravel ルーティング

Laravel 514 + Bootstrap 334 注 2: Laravel ルーティング

WBOY
リリース: 2016-07-30 13:31:50
オリジナル
979 人が閲覧しました

1 ルーティングメカニズム

MVC のルーティングは非常に重要な機能です。その機能は次のとおりです。
A. ユーザーのアクセス (URL) に従って、受信したリクエストとそのリクエストに添付されたパラメーターを照合します。リクエストを呼び出して、コントローラーのアクション メソッドをマッピングし、パラメーターを渡します。次の図は、ユーザー リクエストを単純な形式で表します。
2 Laravelルーティングの場合

Laravel 5.1.4では、ルーティング設定ファイルはapp/Http/routes.phpです。 2.1 文字列ルーティングを直接返す

元のコードの後に​​次のコードセグメントを追加します:

Route::get('/hw', function () {
    return 'Hello World';
});
ログイン後にコピー

以下に示すように、ブラウザを開いて http://localhost:801/hw にアクセスします。

2.2 ビューを返すルート

上記のコードに次のコードセグメントを追加します:

Route::get('/home', function () {
    return view('home');
});
ログイン後にコピー
次の内容を含むビューファイル home.php をディレクトリ resource/views に作成します。
<html>
<body>
<h1>home</h1>
</body>
</html>
ログイン後にコピー
ブラウザを開いて、http://localhost:801/home


上記の例のコードがパラメータをビューページに渡す必要がある場合はどうなるでしょうか?ルーティング コードを変更します:

Route::get('/home', function () {
    return view('home', ['name' => '张三']);
});
ログイン後にコピー
ビュー コードを変更します:
<html>
<body>
[<?php echo $name; ?>],您好!
</body>
</html>
ログイン後にコピー
訪問の効果を見てみましょう:


ビューが多すぎる場合は、通常、モジュールごと、または関数ごとに保存されます。 resource/views ディレクトリに新しいディレクトリ (public/demo) を作成し、home.php をこのディレクトリに移動します。 。

上記の例のルーティング コードを次のように変更します:
Route::get('/home', function () {
    return view('public.demo.home', ['name' => '张三']);
});
ログイン後にコピー
再度アクセスしたときも、通常どおりページを開くことができます。

2.3 ルーティングパラメータ

前に述べたように、ルーティングはユーザーのリクエストパラメータと一致する可能性がありますが、どのように一致させるのでしょうか?上記の例のルーティング ファイルにコード スニペットを追加します。

Route::get('user/{name}', function($name) {
    return '用户姓名:'.$name;
});
ログイン後にコピー

ブラウザを開いて、http://localhost:801/user/jack


2 つある場合はどうなるでしょうか。毛織物?ルーティング コードを変更します:

Route::get('user/{name}/{age}', function($name,$age) {
    return '用户姓名:'.$name.',年龄:'.$age;
});
ログイン後にコピー
ブラウザを開いて、http://localhost:801/user/jack/23 にアクセスします。

年齢パラメータが必要ない場合はどうすればよいですか?ルーティング コードを再度変更します:

Route::get('user/{name}/{age?}', function($name,$age=null) {
    return '用户姓名:'.$name.',年龄:'.$age;
});
ログイン後にコピー
アクセス アドレス: http://localhost:801/user/jack

2.4 ルーティング パラメータの制約


通常の状況では、ユーザーがアクセスする一部のパラメータには特定のルールがあります。たとえば、ユーザー情報を読み取るときのユーザー ID は数字、ニュース情報を変更するときのニュース ID は GUID などです。

routes.php ファイルを変更し、次のコードを追加します:
Route::get('new/{id}', function($id)
{
    return '新闻ID:'.$id;
})->where('id', '[0-9]+');
ログイン後にコピー

ブラウザを開いて、次のように http://localhost:801/new/3 にアクセスします。

http://localhost:801/new/abc にアクセスできる場合、指定されたページは存在しません:

同様に、複数のパラメータが同時に制限されている場合、配列を使用する必要があるため、上記の例のルーティング コードを変更します。

Route::get('new/{id}/{title}', function($id,$title)
{
    return '新闻ID:'.$id.',新闻标题:'.$title;
})->where(['id' => '[0-9]+', 'title' => '[a-z]+']);
ログイン後にコピー

アクセス効果はここでは実証されません。

さらに、グローバル制限を構成し、ファイル app/Providers/RouteServiceProviders.php を開き、ブート メソッドを次のように変更できます。

    public function boot(Router $router)
    {
        //
        $router->pattern('id', '[0-9]+');
        parent::boot($router);
    }
ログイン後にコピー

上記の例のルーティング コードを次のように変更します。

Route::get('new/{id}', function($id)
{
    return '新闻ID:'.$id;
});
ログイン後にコピー

アクセス効果は上記の例と同じであるため、ここでは説明しません。 2.5 ルーティング パラメータを取得する

他の操作を行うために、routes.php でルーティング パラメータを取得できます。

Route::get('new/{id}', function(Request $request, $id)
{
    if ($request->route('id') == '2')
    {
        return '新闻ID是2';
    }else{
        return '新闻ID不是2,值是:'.$id;
    }
});
ログイン後にコピー

in Routes.php

use Illuminate\Http\Request;
ログイン後にコピー

ブラウザを開いて、http://localhost:801/new/2 と http://localhost:801/new/3 にそれぞれアクセスします。さまざまなページ効果。 ルーティングには、まだ研究が必要な複雑な機能がたくさんあります。

著作権声明: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。

以上、Laravel 514 + Bootstrap 334 の紹介でした。 注 2: Laravel のルーティングについて、内容面も含めて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート