はじめに
Laravel で @section
の設定がある場合のみ HTML を表示する方法を整理した。
例えば「共通的に使うので、レイアウトファイルにパンくずリストを定義したい」けど、「パンくずリストの表示指定が無いページでは、パンくずリスト自体を表示したくない」のようなケース。
※わかりやすい例が思いつかない。
TL;DR
@hasSection
を使う- 複合条件の場合は
@if
やView::hasSection
を組み合わせて対応
Laravel で @section
の設定がある場合のみ HTML を表示する方法を整理した。
例えば「共通的に使うので、レイアウトファイルにパンくずリストを定義したい」けど、「パンくずリストの表示指定が無いページでは、パンくずリスト自体を表示したくない」のようなケース。
※わかりやすい例が思いつかない。
@hasSection
を使う@if
や View::hasSection
を組み合わせて対応davejamesmiller/laravel-breadcrumbs を使って、Laravel でパンくずリストを作成する方法を調べた。
composer require davejamesmiller/laravel-breadcrumbs
でインストールroutes/breadcrumbs.php
でパンくずリストの定義Breadcrumbs::render('list_name')
でパンくずリストの描画@section
, @yield
と組み合わせると便利ページ中の複数の画像を zip に圧縮してローカルにダウンロードする方法を整理した。
※JavaScript で画像をローカルにダウンロード の続き
await Promise.all()
ですべての非同期リクエストが完了したら zip 生成処理を実施folder()
, folder.file()
, generateAsync()
で、zip ファイルの生成createObjectURL
→ <a href="..." download="xxxx.zip">
→ クリック&削除JavaScript で画像をローカルにダウンロードする方法を整理した。
img
タグで表示されている画像を JS 実行で保存するような処理を想定。
参考: zip にまとめてダウンロード編: JavaScript で複数画像を zip に圧縮してローカルにダウンロード
XMLHttpRequest
でのリクエスト時に responseType = "blob"
でリクエストcreateObjectURL
でオブジェクト URL を生成a
タグの download
属性でファイルを保存revokeObjectURL
でオブジェクト URL を開放PHP で条件分岐して違う HTML タグや文章を表示したい場合に、なるべくシンプルに HTML を書く方法を調べた。
<?php if (true) : ?>
<?php endif; ?>
のように :
と endif
を使うApache2 + PHP でウェブサーバを立てている状況で、非公開ディレクトリ(パブリックでないローカルのディレクトリ)の画像を読み込んで表示する方法を調べた。
※「画像は表示したいが、画像ファイル自体は公開ディレクトリに格納したくない」のような特殊なケース
<img>
の src
に画像を設定する
Ruby の 5.times
のように、JavaScript で簡単に指定回数(N回)のループを行う方法を調べた。
...
)を使う[...Array(10)].forEach
, [...Array(10)].map
, etcArray.fill
を使うArray(10).fill().forEach
, etcArray.from
を使うArray.from({ length: 10 }).forEach
, etcArray.fill
は IE 非対応なので注意 (2020/01/10 現在)BenSampo/laravel-enum を利用して、Laravel で Enum を使う方法を整理した。
※機能が豊富なので、自分が使った範囲のみ。
<select>
のオプションも toSelectArray()
で簡単に設定できる