laravel12.laravel_011
R e i - D r e a m
for Laravel
TOP > Laravel Ver.12 > コントローラ
Guest
login

最終投稿日:2026年2月15日

【検証環境】- Laravel Ver.12 - Windows11 - Rocky Linux Ver.8 - MySQL Ver.8 - MySQL Ver.9
目次
○ コントローラ
[コントローラ(基本)]
バリデーション
[バリデーション]
DB操作
[DB操作]
コントローラ(基本)
コントローラの作成
コントローラの作成には[artisan]コマンドを使用します。
試しに「TestController」を作成してみます。
ターミナルより以下を叩く
[artisan]コマンド

C:\~\laravel_12>php artisan make:controller TestController
       INFO  Controller [C:\~\laravel_12\app\Http\Controllers\TestController.php] created successfully.

C:\~\laravel_12>

『~\app\Http\Controllers\TestController.php』が作成されます。
作成されたコントローラ内容
TestController.php

<?php
    namespace App\Http\Controllers;
    use Illuminate\Http\Request;
    class TestController extends Controller {
        //
    }

○ ビュー側にアサインする
画面描画用のメソッドの場合は、最終的に画面側へ情報を返却(return)します。
簡単な書式は以下の様になります。
TestController.php

<?php
    namespace App\Http\Controllers;
    use Illuminate\Http\Request;
    class TestController extends Controller {

        return view('index', ['title' => 'ららべる']);
    }

画面「~\resources\views\index.blade.php」の内容を描画する。
更に画面内で変数「$title」を以下フォーマットで使用できます。
    {{$title}}
各種取得情報
○ リダイレクト処理
return redirect()->route('hoge.index');
return response()->json(['id'=>'123'], 200);      ※ JSONレスポンスを返却する
○ 通信方式を取得
$request->method() 文字列[GET][POST]を取得
$request->isMethod('post') [boolean]で取得
$request->isMethod('get') [boolean]で取得
$request->ajax() [boolean]で取得
○ GET/POST値を取得
request->request->get('hoge', 'default値') [POST]値のみ取得可能
$request->get('hoge', 'default値') [GET][POST]値取得可能
$request->input('hoge', 'default値') [GET][POST]値取得可能
$request->all() [GET][POST]値を連想配列取得可能
$request->query('hoge', 'default値') [GET]値のみ取得可能
ポイント

「default値」について。
    この値はキーが存在しない場合に適用されます。
    従って「null」「空白」の場合「default値」は使われません。(キー自体は存在するため)

○ Auth情報を取得
 ※「use Illuminate\Support\Facades\Auth;」宣言が必要
Auth::attempt($credentials) 認証情報を元にログイン試行(成功時true)
Auth::login($user) ユーザーを強制ログイン
Auth::logout() ログアウト(セッション破棄)
Auth::user() 現在ログイン中のユーザー取得
Auth::check() ログイン中か確認(true/false)
Auth::id() ログイン中ユーザーのID取得
○ SESSION値の取得
[$request]インスタンスから制御する
$request->session()->get('key', 'default値') 取得
$request->session()->put('key', 'value') 登録
$request->session()->forget('キー名') 削除
[SESSUIN]クラスから制御する
 ※「use Illuminate\Support\Facades\Session;」宣言が必要
Session::get('key') 取得
Session::put('key', 'value') 登録
Session::forget('key') 削除
○ キャッシュ値の取得
※「use Illuminate\Support\Facades\Cache;」宣言が必要
Cache::get('hoge', '') 取得
Cache::put('hoge', $hoge, 60) 登録(60秒間)
Cache::forever('hoge', $hoge) 登録(永続的)
Cache::forget('hoge') 削除
○ [.env]ファイルの取得(config)
[config]経由で[.env]の内容を取得する方法が推奨されています。
config/app.php

return [
    'key_name' => env('KEY_NAME', 'default'),

KEY_NAMEが、実際に『.env』に登録してるキー名です。
取得例)
        $value = config('app.key_name');
○ その他のキー名
config('session.lifetime') セッションタイムアウト(分)
config('session.expire_on_close') fase = ブラウザを閉じるとセッションは破棄
○ [~\routes\web.php]情報の取得
route('hoge.index') [name]属性名からURLを取得
「use Illuminate\Support\Facades\Route;」を宣言して取得
Route::currentRouteName() 現在のルートの[name]属性名を取得
Route::getRoutes() 全てのルート情報を取得する(非常に重いのでダンプしちゃ駄目!!)
使用例

$routes = Route::getRoutes();
$routeNames = [];
foreach ($routes as $route) {
    $name = $route->getName();
    // システム使用「storage.local」を除外
    if (isset($name) && $name != 'storage.local') {
        $routeNames[] = $name;
    }
}
var_dump($routeNames);            // てのルートの[name]属性名を配列取得する

○ その他
○ リファラーを取得(以下結果は同じです)
$request->headers->get('referer')
$request->header('referer')
リダイレクト処理
○ return redirect()->intended('index');          ※ 認証関連で使用
○ return redirect('index');
○ return redirect()->route('index_hoge');
○ return redirect()->away('https://www.yahoo.co.jp/');
フラッシュメッセージ
フラッシュメッセージとは、セッションを利用してリダイレクト後に一時的にメッセージを表示する機能です。
利用頻度の多い場面では、DB登録後に「正常に登録しました。」や「登録に失敗しました。」等の情報表示に使われます。
ビュー側へ画面上部に表示される様、以下を追記します。
ビュー追記

@if (session('message'))
<div>
    {{ session('message') }}
</div>
@endif

○ [redirect()]の利用
書式)
return redirect()->route('hoge.index')->with('message', '登録が完了しました。');
上記設定で画面描画時1回だけ、セッションに内容が登録されます。
ポイント

フォーム等がある画面等、同じ画面にリダイレクトし入力内容を維持したい場合は、メソッドチェーンで以下を追記します。
    ->withInput()
例)
    return redirect()->route('hoge.index')->with('message', '登録完了。')->withInput();

○ [redirect()]の利用
書式)
session()->flash('{キー値}', '{メッセージ内容}');
または、
$request->session()->flash('{キー値}', '{メッセージ内容}');
グローバル関数「session」を利用するか、変数「$request」を使うかの違いです。
関数「redirect」のメソッドチェーンから切り離して設定できる点で自由度が高いです。
ポイント

[キー値]は、ビュー側が受け取る「session('{キー値}')」の事です。
また同様に入力値を保持したい場合は、以下の様に記述できます。
例)
    return redirect()->route('hoge.index')->withInput();

きっぷる
ログインしてコメントを残そう!!


レンズモード 【新規購入限定用】
きっぷる