blocs/admin: 共通レイアウト・ボタン配置・見出し・ログ・リダイレクト
blocs/admin: 共通レイアウト・ボタン配置・見出し・ログ・リダイレクト
管理画面の共通レイアウト、ボタン配置、ヘッドライン、ログ、リダイレクトの設定方法を説明します。
前提条件: blocs/admin がインストール済みであること
共通テンプレート
共通テンプレートは resources/views/admin/base/common に格納されています。
| テンプレート名 | 用途 |
|---|---|
| header.html | 画面上部のヘッダー |
| footer.html | 画面下部のフッター |
| message.html | エラーメッセージの表示 |
| css.html | CSSの読み込み |
| script.html | JavaScriptの読み込み |
| sideNav.html | サイドメニュー |
| topNav.html | 画面上部のナビゲーション |
| copyright.txt | 画面下部のコピーライト表示 |
ベースコントローラーの主な変数
| 変数名 | 説明 |
|---|---|
| $this->val | ビューに渡す変数 |
| $this->mainTable | メインで使用する Eloquent モデルのクラス名(例: 'App\Models\Admin\User') |
| $this->viewPrefix | テンプレートのパスプレフィックス |
| $this->noticeItem | 操作完了時のメッセージに使う項目名 |
ボタンを追加する方法
テンプレートに data-bloc 属性で以下のブロック名を指定して、ボタンを配置します。
| ブロック名 | 配置場所 |
|---|---|
| buttonTopLeft | 画面上部 左側 |
| buttonTopCenter | 画面上部 中央 |
| buttonTopRight | 画面上部 右側 |
| buttonBottomLeft | 画面下部 左側 |
| buttonBottomCenter | 画面下部 中央 |
| buttonBottomRight | 画面下部 右側 |
サンプル: 戻るボタンを画面下部左側に配置
<!-- data-bloc="buttonBottomLeft" -->
<!--
data-include="button_back"
$buttonHref=route(prefix().".index")
-->
<!-- data-endbloc -->
ヘッドラインの変更方法
\Blocs\Menu::headline($icon, $lang, $activePrefix, $menu) を使用します。
| 引数名 | 内容 |
|---|---|
| $icon | Font Awesomeのアイコン名(例:fa-cogs) |
| $lang | 表示するラベル名(翻訳キーを指定) |
| $activePrefix | アクティブ状態にするルートのプレフィックス |
| $menu | ヘッドラインの右側に表示する補足メニュー名 |
\Blocs\Menu::headline('fa-cogs', 'ヘッドライン', 'admin.user', 'ユーザー管理');
サイドメニューの表示
コントローラーから $this->setupMenu() でデータを渡します。テンプレート側では以下のように読み込みます。
<!-- data-include="/admin/base/common/sideNav.html" -->
ページ遷移時にデータを引き継ぐ方法
コントローラーで $this->keepItem($keyItem) を使用します。
その他の処理フロー
toggle ─── データの有効/無効切替
├─ getCurrent ................ データ取得
├─ (ステータス変更) .......... disabled_at を切替
└─ outputToggle .............. 完了処理
ログ取得用のメソッド
| 可視性 | メソッド名 | 処理内容 |
|---|---|---|
| public | logStore | 新規作成操作のログを記録 |
| public | logUpdate | 編集操作のログを記録 |
| public | logDestroy | 単一データの削除操作のログを記録 |
| public | logSelect | 一括削除操作のログを記録 |
ログ記録に使用されるデータは $this->logData に保持されます。
リダイレクト用メソッド(BackTrait)
処理完了後にメッセージ付きでリダイレクトするためのメソッドです。
| 可視性 | メソッド名 | 処理内容 |
|---|---|---|
| protected | backIndex($category, $message, ...$msgArgList) | 一覧画面にリダイレクト(メッセージ付き) |
| protected | backCreate($category, $message, $noticeForm, ...$msgArgList) | 新規作成画面に入力値を保持してリダイレクト |
| protected | backEdit($category, $message, $noticeForm, ...$msgArgList) | 編集画面に入力値を保持してリダイレクト |
$category: メッセージのカテゴリ(例:error,success)$message: 翻訳キーまたはメッセージ文字列。{{0}}、{{1}}のプレースホルダーを$msgArgListで置換$noticeForm: エラーを表示するフォーム名(backCreate/backEditのみ)
メッセージの解決順序
$message の値は以下の順序で解決されます。
lang("{$category}:{$message}")で翻訳キーを検索- 翻訳が見つからない場合、
$messageをそのまま表示 $msgArgListの値で{{0}}、{{1}}... のプレースホルダーを順番に置換
ToggleTrait(有効/無効切り替え)
disabled_at カラムを持つモデルで、toggle ルートにより有効/無効を切り替えます。処理完了後は backIndex で一覧に戻り、data_valid / data_invalid メッセージを表示します。ルートは自動生成テンプレートに含まれますが、フォームに disabled_at がない場合は No.3.2 の手順で無効化してください。