Laravelでプレビュー画面
Laravelでプレビュー画面の作成方法
基本的には入力内容をshow用のviewに渡すだけ。
コーディング例
編集画面view
更新ボタンとプレビューボタンを準備。 プレビューは別タブに表示する。
<button name="action" value="preview" onclick="this.form.target='_blank'">プレビュー</button> <button name="action" value="update" pnclick="this.form.target='_top'">更新</button>
controller
$request->action
がpreview
の場合はプレビュー画面を表示
そうでなければ更新処理
$user = User::find($id); if ($request->action === 'preview') { return view('show', [ 'user' => $user->fill($request->all()), 'previewPosts' => Post::whereIn('id', $request->post_ids)->get(), 'previewPhoto' => $request->file('photo'), ]); } // 更新処理
show画面view
userはそのまま 子オブジェクト、画像は場合分け
{{ $user->name }} @foreach($previewPosts ?? $user->posts as $post}} {{-- --}} @endforeach @if(isset($previewPhoto)) <img src="data:{{ $previewPhoto->getMimeType() }}:base64,{{ file_get_contents($previewPhoto) }}"> @else {{-- 通常時の表示 --}} @endif