概要
Laravelのコントローラ周辺について説明するよ
初心者向けの内容だよ
【Laravel】ルーティングの書き方と一緒に読むといいよ
コントローラ
コントローラとは、アプリケーションの処理を実装する部分だよ
クライアントからアクセスがあると、ルーティングによって、「○○というアドレスがきたら××という処理を行う」ということを決めるんだけど、この「××という処理」を書いているものがコントローラだよ
コントローラはクラスで表されていて、アクションというメソッドで書かれたものの中に具体的な処理を書いていく
基本
コントローラを作成するにはartisanコマンドを使う
% php artisan make:controller コントローラ名
コントローラ名は大文字で始まって、○○Controllerという名前にするのが一般的だね
% php artisan make:controller HelloController
例えば、上のようなコマンドを打つと以下のようなコントローラができる
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HelloController extends Controller
{
//
}
?>
※以下namespaceやuseは省略
例えばindexというアクションを書いてみる
class HelloController extends Controller
{
public function index()
{
$param = ['msg' => 'Hello'];
return view('welcome', $param);
}
}
アクション内でreturnするのは、主にview()やredirect()だね
view()は引数にテンプレート名やパラメータをとって、ブラウザにビューを表示させる
リダイレクトは例えばredirect('/hello/index')って感じ
上の例でいうと、indexの引数は何もないけれど、ルートにパラメータがある場合は引数を設定する
ただし、'http://.../index?id=1'のように?より後ろのパラメータは引数設定しても取得できない
この場合は以下のように引数にRequestオブジェクトの$requestを設定して、$request->idのように取得すればいい
class HelloController extends Controller
{
public function index(Request $request)
{
$param = ['msg' => 'Hello', 'id' => $request->id];
return view('welcome', $param);
}
}
おわり
今回はここまで
あんまり説明することがなかったね
それだけ単純だってこと
次はビューやテンプレートについて話していこうかな