コントローラーの生成
artisanで作成する
php artisan make:controller コントローラー名
| 1 2 | $ php artisan make:controller SampleController Controller created successfully. | 
コントローラーが配置される場所。
app/Http/Controllers
| 1 2 3 4 5 | $ ls -Al app/Http/Controllers/ drwxrwxrwx. 2 vagrant vagrant 205  7月  1 20:44 Auth -rwxrwxrwx. 1 vagrant vagrant 361  7月  1 20:14 Controller.php -rw-rw-r--. 1 vagrant vagrant 123  7月  3 11:18 SampleController.php | 
初期状態のコントローラーの内容。
| 1 2 3 4 5 6 7 8 9 10 | <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class コントローラー名 extends Controller {     // } | 
| 1 2 3 4 5 6 7 8 9 10 11 | $ cat app/Http/Controllers/SampleController.php <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class SampleController extends Controller {     // } | 
一般的な構成
ビューの基礎で使ったblade_sampleはルーティングファイルに変数などを記述して呼び出していた。しかし一般的には、ビューに必要な処理はコントローラーのメソッド=アクションを記述し、ルーティングではコントローラーのアクションを呼び出す、という方法が取られる。
そこで、このルーティングに書かれた処理をコントローラーに記述しなおし、ルーティングはコントローラーを呼び出すだけの構成に変更する。
コントローラーの記述
先に生成したSampleControllerクラスのメソッドとして、sampleAction()を定義し、その中に変数定義などの処理とビューの呼び出しを記述する。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ?php namespace App\Http\Controllers; use Illuminate\Http\Request; class SampleController extends Controller {   public function sampleAction() {     $assoc_array = [         'head' => 'bladeテンプレートでの変数展開',         'mechanism1' => '連想配列をview()の第2引数に渡す',         'mechanism2' => 'それを受け取ったビューでは、キーが変数名、値が変数の内容となる',         'escaped' => 'HTML特殊文字は<strike>自動的に</strike>エスケープされる',         'unescaped' => '{{...}}}ではなく{!!...!!}で囲むとエスケープ<strike>される</strike>されない',      ];     return view('samples.blade_sample', $assoc_array);   } } | 
ルーティングでのアクションの定義
ルーティングの無名関数で処理を記述していた部分を、アクション呼び出しの書き方に変更する。
| 1 | Route::get('sample_action', 'SampleController@sampleAction'); | 
このように変更することで、ルーティングはURLとメソッドをアクションに結びつけることに専念し、シンプルになる。