フレームワークを使ってサイトを構築していると
動的ページはお知らせくらいしかなく残りは静的ページっていう場合でもフレームワークを通すような処理にしなければならず
静的ページのHTMLが書ける人がいても、その人だけでは静的ページの実装は出来なくなる。
なので、WYSIWYGなエディタを用意して
PHPやプログラミングのことは分からず、HTMLコーディングだけ出来る人でも
新しいページを追加したり、変更したりすることが出来る方法です。
1.静的ページ保存用のDBを作る
例)pagesテーブル
・uri
・contents
2.ルーティングに該当しなかった時のルーティングを設定する
routes/web.phpの1番下に以下を記述
Route::fallback('User\PageController@index');
3.静的ページ用のviewを準備
ヘッダ、フッタ、メニューなどは共通で使いたいので以下のような感じにする
例)user/page/index.blade.php
@extends('user.layouts.app')
@section('content')
<body>
<div>
{!! $contents !!}
</div>
</body>
@endsection
4.静的ページ用のコントローラーを記述
例)PageController.php
public function index(Request $request){
$uri = $request->path();
$page = Page::where('uri', $uri)->first();
if(is_null($page)) abort(404);
$contents = $page->contents;
return view('user.page.index', [
'contents' => $contents,
]);
}
ページ丸ごとを登録するやり方ではなく
テンプレート化してコンテンツ部分のみを登録するやり方なので
実際には、ページタイトル、検索ワード、サイト説明文などもviewに渡してやる必要があります。
この仕組みを作ってからページを修正してFTPしてとかというエンジニアの仕事が随分減りました!