前の記事では、ユーザーのリクエストとレスポンスのロジックをルーティングに組み込みましたが、実際の状況では、これは現実的ではなく、前のコードほど単純ではありません。
ほとんどの場合、ユーザーリクエストの操作はコントローラーで処理されます (これにはビジネス処理ロジックは含まれません)。
すべての Laravel コントローラーは app/Http/Controllers ディレクトリにあります。
1 シンプルなコントローラーを作成します
1.1 パラメーターのないコントローラー
app/Http/Controllers ディレクトリに新しいファイル HomeController.php を作成します。コードは次のとおりです:
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; class HomeController extends Controller { public function hw() { return view('hw'); } }
<html> <body> Hello World! </body> </html>
<?php Route::get('/', function () { return view('welcome'); }); Route::get('/hw', 'HomeController@hw');
1.2 コントローラーはビューにパラメーターを渡します
コントローラーがビューにパラメーターを渡す必要がある場合は、次のようにコントローラーの hw メソッドを変更します。
public function hw() { return view('hw',['name'=>'CBW']); }
<html> <body> [<?php echo $name; ?>],您好! </body> </html>
1.3 コントローラーはルートからパラメーターを読み取り、それらを渡します
コントローラーがルートからパラメーターを取得する必要がある場合は、上記のルーティング コード セグメントを次のように変更します。
Route::get('/hw/{name}', 'HomeController@hw');
public function hw($name) { return view('hw',['name'=>$name]); }
2 ルーターの詳細
2.1 コントローラーと名前空間
たとえば、Web サイトには複数のサブプロジェクトが含まれます。 -end には閲覧用のニュース関数があり、バックエンドには管理用の関数があります。
ここで、通常のユーザー モジュール (Visit) とシステム管理モジュール (Manage) の 2 つのモジュールを含む Web システムを開発すると仮定します。
A. app/Http/Contollers ディレクトリに 2 つの新しいモジュール コントローラー サブディレクトリを作成します: Visit と Manage、そして Visit サブディレクトリ: Home の下に作成します。 C. 上の例で作成した HomeController を、前の手順で作成した Visit に移動します。変更されたコードは次のとおりです:
<?php namespace App\Http\Controllers\Visit; use App\Http\Controllers\Controller; class HomeController extends Controller { public function hw($name) { return view('Visit.Home.hw',['name'=>$name]); } }
D.routes.php コード セグメントを次のように変更します:
Route::get('/hw/{name}', 'Visit\HomeController@hw');
2.2 コントローラーミドルウェア
前の記事でミドルウェアの使用法を示しました。上の例を確認してみましょう:
Route::get('/user/{age}', ['middleware' => 'my', function ($age) { return '用户年龄:'.$age; }]);
class UserController extends Controller { public function __construct() { $this->middleware('my'); } }
この他にも、暗黙のコントローラー、RESTful、ルートキャッシュなどがありますが、これらは後ほど追加されます。
著作権声明: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。以上、Laravel 514 + Bootstrap 334 注 4: Laravel コントローラーの内容を含めて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。