Laravel コントローラの基本的な使い方

Laravelではコントローラを以下のフォルダに配置します。
\{Laravelプロジェクト}\app\Http\Controllers

コントローラの基本

Controllerを継承したクラスを生成します。クラス名はコントローラ名Controllerとします。
クラス内にルーティングから実行されるメソッド(アクションメソッド)を実装します。

use App\Http\Controllers\Controller;

class コントローラ名Controller extends Controller
{
    public function アクションメソッド() {
        // 処理.
    }
}

コンストラクタ

通常のPHPクラスと同じです。

public function __construct() {
    // 処理
}

コントローラで画面を表示する方法

ビューテンプレート(Blade)を使用する場合は下記のとおり。パラメータは第2引数に連想配列で指定します。

public function show() {
    return view("ビューテンプレート名", []);
}

直接出力

ビューテンプレート(Blade)を使用せずに直接HTMLを出力することも可能です。

public function show() {
    print("<h1>Laravel</h1>");
    return null;
}

パラメータの受け取り

アクションメソッドでパラメータを受け取りたい場合、ルーティングでパラメータを記述します。ルーティングにパラメータを記述しないとエラーになります。

  1. URIに{パラメータ}を追加する
Route::get("/show/{id}", "WebApiController@show");
  1. コントローラのアクションメソッドで引数を追加する
class WebApiController extends Controller
{
    public function show($id) {
    }
}

パラメータが複数の場合は後ろに増やします。(/show/{id}/{name}に対してshow($id, $name))

Requestを使ったパラメータの受け取り

アクションメソッドの引数をRequest $requestとすると全てのパラメータを一括で取得できます。
パラメータは$request->パラメータ名で参照します。パラメータ名はルーティングの記述に依存します。

リダイレクト

ヘルパー関数のredirect()を使い、アクションメソッドからリダイレクトを行います。

アクション指定

action()を使いコントローラクラス名@アクションメソッドで指定します。

return redirect()->action('WebApiController@show');

パラメータは第2引数に連想配列で渡します。

return redirect()->action('WebApiController@show', ['id' => 1]);

サイト内のページへリダイレクト

引数のuriはルーティングで指定した値です。

return redirect('/show');

任意のURLへリダイレクト

https://www.yahoo.co.jp/へリダイレクトする場合

return redirect('https://www.yahoo.co.jp/');

または

return redirect('//www.yahoo.co.jp/');

HTTPエラーレスポンス

コントローラでHTTPエラーコードを生成するにはヘルパー関数のabort()を使用します。
abort()は例外を発生させるため、abort()以降のソースコードは実行されません。

コントローラでエラー時に404ページを表示

abort(404);

コントローラでエラー時に400を返す

abort(400);
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

関連コンテンツ

スポンサードリンク

Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です