Skip to main content

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) 編集画面に入力値を保持してリダイレクト

メッセージの解決順序

$message の値は以下の順序で解決されます。

  1. lang("{$category}:{$message}") で翻訳キーを検索
  2. 翻訳が見つからない場合、$message をそのまま表示
  3. $msgArgList の値で {{0}}{{1}} ... のプレースホルダーを順番に置換

ToggleTrait(有効/無効切り替え)

disabled_at カラムを持つモデルで、toggle ルートにより有効/無効を切り替えます。処理完了後は backIndex で一覧に戻り、data_valid / data_invalid メッセージを表示します。ルートは自動生成テンプレートに含まれますが、フォームに disabled_at がない場合は No.3.2 の手順で無効化してください。