前提・概要
プロジェクトは前回記事にて作成したものを想定。
本日の完成形
1.新規画面の作成
新規画面を作成する。ディレクトリ構成は下記を想定。
(名称の想定としては、受注した案件データを表示できる画面を想定。)
app
└ Http
└ Controllers
└ OrderController.php ・・・3
resources
└ views
├ welcome.blade.php (topページ)・・・1
└ daily
└ order
└ index.blade.php・・・4
routes
└ web.php ・・・2
①topページからのhref設定
topページから新規ページへの画面遷移する設定を行う。
・・・
<a class="collapse-item" href="/order">受注データ一覧</a>
・・・
②web.phpでのルーティング設定
業務ロジックになるためコントローラー経由にする。
//追加
Route::get('/order', [App\Http\Controllers\OrderController::class, 'index'])->name('order');
③コントローラーの作成
HomeController.php をコピーし、OrderController.phpを作成。
将来的には、indexメソッド以外に諸々作成すると思われる。
// mod start
// class HomeController extends Controller
class OrderController extends Controller
// mod end
・・・
public function index()
{
// mod start
// return view('home');
return view('daily.order.index');
// mod end
}
}
④index.blade.phpの作成
テスト用にとりあえずの作成。
test
⑤疎通確認
ローカルサーバを起動しておきメニューで設定した部分をクリック。
「test」と表示されるか確認する。
2.画面を共通化
画面追加の際の手順は共通であるため、追加方法を一般化できるようにする。
(メニューバーはそのままだったり、タイトル部分を変えたりとかは同じなので)
イメージとしては、topページのメニューバー以外の部分をコンテンツとしておき、
各ページ内容を埋め込むイメージ。
①トップページにコンテンツが共通部分であることを定義する
- タイトルの部分を埋め込みに変更
- コンテンツの部分を埋め込みに変更
welcome.blade.phpのContent Wrapperの部分を全て削除し、yieldに置き換える。
// mod start
<!-- <title>SB Admin 2 - Dashboard</title> --> // ← 削除する
<title>@yield('title')</title>
// mod end
// mod start
<!-- Content Wrapper -->
<!-- ・・・ --> // ← 削除する
@yield('content')
<!-- End of Content Wrapper -->
// mod end
②index.blade.php
先程作成した、index.blade.phpにて、title・contentの内容を作成する。
@extends('welcome')
@section('title', '受注データ一覧')
@section('content')
受注データ一覧
@endsection
③動作確認
サーバ起動し、ブラウザにてアクセス。
タイトルおよびコンテンツの部分が変わっていることを確認する。
今後、画面を追加する際には、同様の手順で変更される部分だけを実装していく。