この記事では、Laravel 5.2 での HTTP ルーティング、コントローラーの作成、およびリソース ルーティングについて説明します (コード付き)。必要な方は参考にしていただければ幸いです。
1. HTTP ルーティング
すべてのルートは、App\Providers\RouteServiceProvider クラスによってロードされる app/Http/routes.php ファイルで定義されます。
1. 基本的なルーティング
単純な Laravel ルーティングは URI とクロージャーのみを受け入れます
Route::get('foo', function () { return 'Hello, Laravel!'; });
一般的な HTTP リクエストの場合, Laravel には次のようなルートがあります
Route::get($uri, $callback); //响应 get 请求 Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri, $callback); Route::options($uri, $callback); Route::match(['get', 'post'], $uri, $callback); //响应 get, post 请求 Route::any('foo', $callback); //响应所有请求
このうち、$callback はクロージャまたはコントローラメソッドになります。実際、開発ではコントローラー メソッドが使用される場面が数多くあります。
2. ルーティングパラメータ
//单个路由参数 Route::get('user/{id}', function ($id) { return 'User '.$id; }); //多个路由参数 Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) { // }); //单个路由参数(可选) Route::get('user/{id?}', function ($id = 1) { return 'User '.$id; }); //多个路由参数(可选) Route::get('posts/{post}/comments/{comment?}', function ($postId, $commentId = 1) { // }); //注意:多个参数时,只可以对最后一个参数设置可选,其他位置设置可选会解析错误 // 正则约束单个参数 Route::get('user/{name?}', function ($name = 'Jone') { return $name; })->where('name', '\w+'); //约束参数为单词字符(数字、字母、下划线) // 正则约束多个参数 Route::get('user/{id}/{name}', function ($id, $name) { // })->where(['id' => '[0-9]+', 'name' => '[a-z]+']);
2. コントローラーの作成
Artisan コマンドを使用して php 職人 make:controller UserController を作成します。これで、コントローラー ファイル UserController.php がコントローラー ディレクトリ app/Http/Controllers に生成されます。
3. 高度なルーティング1. 名前付きルーティング グループ
2.1 ルーティング プレフィックスの合計名前空間たとえば、コントローラー メソッドを指すルートが 2 つあります。//命名闭包路由
Route:get('user', array('as' => 'alial', function(){});
//或 name 方法链
Route:get('user', function(){})->name('alias');
//命名控制器方法路由
Route:get('user', array('uses' => 'Admin\IndexController@index', 'as' => 'alias'));
//或 name 方法链
Route:get('user', 'Admin\IndexController@index')->name('alias'));
最初のルートを取ります。
パラメータ 1:
admin /login を意味します。この URI が Web サイトのルート ディレクトリにある admin/login リソースを要求していることを示します。完全なアドレスはhttp://ドメイン名/admin/login (ここでは Apache のルート書き換えが有効になっており、「index.php」が非表示になっています)。 ) の場合、このリクエストは 2 番目のパラメーターで指定されたコントローラー メソッドにマップされます。 Web サイトのルート ディレクトリはエントリ ファイルが配置されているディレクトリであり、Laravel のパブリック ディレクトリであることに注意してください。サーバーを設定するときにここを指定するのが最善です。
パラメータ 2: Admin\IndexController@login は、このコントローラ メソッドが App\Http\Controllers 名前空間にあり、接続が App\Http\Controllers\ であることを意味します。 Admin\IndexController コントローラーのメソッド。
明らかに、2 つのルートの URI とコントローラー メソッドには同じ部分があります。その後、ルート グループ化を有効にすると、共通部分を抽出できます:
Route::get('admin/login', 'Admin\IndexController@login'); Route::get('admin/index', 'Admin\IndexController@index');
2.2 リソースルーティング##リソースルーティングは、リソースコントローラーにマッピングされたルートであり、リソースを追加、削除、変更、確認するための 7 つのメソッドと 7 つのルートが組み込まれています。
最初に、リソース コントローラー ArticleController を作成します。
// 第一个数组参数中,prefix 键定义 URI 的公共部分,namespace 键定义方法名(命名空间语法)的公共部分 Route::group(array('prefix' => 'admin', 'namespace' => 'Admin'), function(){ Route::get('login', 'IndexController@login'); Route::get('index', 'IndexController@index'); });これにより、app/Http/Controllers/Admin/ArticleController.php ファイル (管理フォルダー) にリソース コントローラーが生成されます。存在しない場合は自動的に作成されます)。7 つの組み込みメソッドは次のとおりです。
php artisan make:controller Admin/ArticleController --resource次に、リソース ルーティングを定義します。ここでは、引き続きルーティング グループの下に定義することを選択します。
<?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class LinksController extends Controller { /** * 显示一个资源的列表 * * @return \Illuminate\Http\Response */ public function index() { // } /** * 显示一个表单来创建一个新的资源 * * @return \Illuminate\Http\Response */ public function create() { // } /** * 保存最新创建的资源 * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * 显示指定的资源 * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * 显示一个表单来编辑指定的资源 * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * 更新指定的资源 * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * 删除指定的资源 * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }最後に、ルートを確認します。リソース コントローラーとリソース ルーティングを使用すると、上記の 7 つのメソッドの HTTP リクエスト メソッドを確認できます。 Artisan コマンド
php 職人ルート:リストを使用して、リクエスト メソッド、URI、コントローラー メソッド、ミドルウェアを含む現在のルートをすべてリストします。
以上がLaravel5.2でのHTTPルーティング、コントローラーの作成、リソースルーティングの紹介(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

laravel10、releaseonfebruary7,2023、isThelateStversion.itfeatures:1)改善された改善とnewReportmethexceptionhandler、2)拡張サプロポートフォーフプP8.1FeatureslikeNums、and3)

ThelatestlaravelversionEnhancesDevelopments:1)SimplifiedRoutingImplicitModelbinding、2)EnhancedEloquentCapabilitiesWithNewQueryMethods、and3)supportformdernphpeaturesliekenamedarguments、makedingdingingindenjoyableを改善しました。

laravel.com/docsで最新のLaravelバージョンのリリースノートを見つけることができます。 1)リリースノート新しい機能、バグの修正、改善に関する詳細情報を提供します。 2)新しい機能の適用を理解するのに役立つ例と説明が含まれています。 3)新機能の潜在的な複雑さと後方互換性の問題に注意してください。 4)リリースノートの定期的なレビューは、それを更新し続け、イノベーションを刺激することができます。

the EssentialToolsforStayingConnedIndIndistRibutedTeamSClude:1)communicationToolslikezoom、Microsoftteams、Slack、anddiscord foreffectivecommunication;

Laravelは、Web開発プロセスを簡素化し、強力な機能を提供することで際立っています。その利点には、1)簡潔な構文と強力なORMシステム、2)効率的なルーティングと認証システム、3)豊富なサードパーティライブラリサポート。開発者はエレガントなコードの作成に集中し、開発効率を向上させることができます。

laravelispredomintylyabackendframework、Designeforerver-sidelogic、databasemanagement、およびapidevelopmentが、BladeTemplatesで開発されたものです。

LaravelとPythonには、パフォーマンスとスケーラビリティの点で独自の利点と短所があります。 Laravelは非同期処理とキューイングシステムを通じてパフォーマンスを向上させますが、PHPの制限により、高い並行性が存在する場合はボトルネックがある場合があります。 Pythonは、非同期フレームワークと強力なライブラリエコシステムでうまく機能しますが、Multi-Threaded環境のGILの影響を受けます。

Laravelは、チームがPHPに精通しており、豊富な機能を必要とするプロジェクトに適していますが、Python Frameworksはプロジェクトの要件に依存します。 1.Laravelは、迅速な開発と柔軟性を必要とするプロジェクトに適したエレガントな構文とリッチな機能を提供します。 2。Djangoは、「バッテリー包含」の概念のため、複雑なアプリケーションに適しています。 3.Flaskは、高速プロトタイプや小規模プロジェクトに適しており、柔軟性が非常に高くなります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









