ホームページ > PHPフレームワーク > Laravel > Laravel 講義 2: ルートの定義とコントローラーへのバインディング

Laravel 講義 2: ルートの定義とコントローラーへのバインディング

齐天大圣
リリース: 2020-12-09 11:44:04
オリジナル
1933 人が閲覧しました

ネットワーク内のルーターがパスの選択とパケットの転送に使用されることはわかっていますが、フレームワーク内のルートは何に使用されるのでしょうか?ここでのルートとはhttpリクエストを受信するためのパスであり、パスを設定することで特定のプログラムの機能にアクセスすることができます。ルーティングはフレームワークの中核機能の 1 つであり、基本的に主流のフレームワークはすべてルーティング機能を備えています。さらに、ルーティングを設定して、長く深いパスを短く浅いパスに変換することもできます (これは SEO にとって非常に有益な機能です)。

デフォルトのルーティング ファイル

すべての laravel ルートは、ルート ディレクトリの Routes ディレクトリにあるルーティング ファイルで定義されます。フレームワークはこのディレクトリを自動的にロードします。デフォルトでは.ファイルの下にあります。 routes/web.php ファイルを見てみましょう

use Illuminate\Support\Facades\Route;

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

基本ルーティング

次に、Web 上に新しいルーティングを作成します。 php ファイル 単純なルーティングのコードは次のとおりです。

Route::get('index', function () {
    return "study laravel";
});
ログイン後にコピー

さて、ブラウザに localhost:8000/index と入力すると、「laravel を勉強する」という文が表示されます。

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

上記の get メソッドに加えて、一般的に使用されるルーティング メソッドは次のとおりです。post、put、delete、any、マッチ 。

ここでの any メソッドは、リクエスト メソッドが何であっても、get/post/put やその他のリクエスト メソッドであってもよく、それらすべてを処理することを意味します。 Match を使用して複数のリクエストを指定できます。次に match の使用法を示します:

Route::match(['get', 'post'], "list", function ()
{
    return 'list';
});
ログイン後にコピー

パラメータの受け渡し

多くの場合、パラメータをルーティングします。も追加されます。たとえば、/news/1 は非常に一般的です。 Lavarel のルーティング メソッドは、次のようなパラメータの受け渡しをサポートしています:

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

上記のルートはパラメータを渡すことができますが、それでも私のニーズを満たすことができません。{id} パラメータは数値でなければならないので、次のようになります:

Route::get('news/{id}', function ($id) {
    return 'news:' . $id;
})->where('id', '\d+');
ログイン後にコピー

複数のパラメータを渡すこともでき、クロージャ内のパラメータは次のように自動的に 1 対 1 に対応します:

Route::get('/name/{name}/age/{age}', function($name, $age) {
    echo "name:$name age:$age";
})->where(['name' => '\w+', 'age' => '\d+']);
ログイン後にコピー

ルートとコントローラbinding

まず、コントローラー ファイル app\Http\Controllers\IndexController.php を作成します。コードは次のとおりです。

<?php
namespace App\Http\Controllers;
class IndexController extends Controller
{
    public function news ($id)
    {
        echo "news:$id";
    }
}
ログイン後にコピー

次に、ルーティング ファイル web を変更します。 php

Route::get(&#39;news/{id}&#39;, &#39;IndexController@news&#39;)->where(&#39;id&#39;, &#39;\d+&#39;);
ログイン後にコピー

これで、/news/1 を介して IndexController コントローラーのニュース メソッドにアクセスできるようになります。

app/Http/Controllers/Home/IndexController.php が作成された場合、このコントローラーのルーティングを設定するにはどうすればよいですか?方法は次のとおりです:

Route::get(&#39;home&#39;, &#39;Home\IndexController@index&#39;);
ログイン後にコピー

以上がLaravel 講義 2: ルートの定義とコントローラーへのバインディングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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