はじめに
Laravel の Form::select
で空の選択肢ありのセレクトボックスを出す方法をまとめた。
TL;DR
- 第4引数に
['placeholder' => '選択してください']
を追加する - もしくは選択肢に対して
prepend('選択してください', '')
を使う- 事前に
collect()
などで Collection に要変換
- 事前に
はじめに
Laravel で PDF ファイルをブラウザで開く方法を整理した。
PDF ファイル自体は Laravel が動作するサーバ内だったり、S3 だったりに置いてある想定。
TL;DR
Storage::disk()->get()
で PDF ファイルを取得response
に PDF ファイルを設定header
でContent-type: application/pdf
とContent-disposition
を指定
はじめに
Laravel で CSV ファイルをもとに DB seed する方法を整理した。
TL;DR
SplFileObject
で読み込んでforeach
で 1行ずつ処理- 1行目はヘッダ行 = DB カラム名
- ヘッダ行とデータ行を
array_combine
で合成 - 合成した配列を使ってレコードの 検索/作成/更新 を行えば OK
updateOrCreate
が便利
- Bulk insert/update には未対応なので、大量データの処理には向かないかも
はじめに
Laravel で @section
の設定がある場合のみ HTML を表示する方法を整理した。
例えば「共通的に使うので、レイアウトファイルにパンくずリストを定義したい」けど、「パンくずリストの表示指定が無いページでは、パンくずリスト自体を表示したくない」のようなケース。
※わかりやすい例が思いつかない。
TL;DR
@hasSection
を使う- 複合条件の場合は
@if
やView::hasSection
を組み合わせて対応
はじめに
davejamesmiller/laravel-breadcrumbs を使って、Laravel でパンくずリストを作成する方法を調べた。
TL;DR
composer require davejamesmiller/laravel-breadcrumbs
でインストールroutes/breadcrumbs.php
でパンくずリストの定義- リスト名、親階層、表示内容とリンク先 を指定
Breadcrumbs::render('list_name')
でパンくずリストの描画@section
,@yield
と組み合わせると便利
はじめに
BenSampo/laravel-enum を利用して、Laravel で Enum を使う方法を整理した。
※機能が豊富なので、自分が使った範囲のみ。
TL;DR
- ローカライゼーションやバリデーションが簡単に実現できる
<select>
のオプションもtoSelectArray()
で簡単に設定できる- 他にも機能がいっぱいある
はじめに
Laravel で 全角カタカナ・半角英数記号 に変換しつつバリデーションする方法について整理した。
要件としては下記。
- バリデーションの前にデータを変換
- 「全角かな・半角カナ」→「全角カナ」
- 「全角英数記号」→「半角英数記号」
- 変換したデータに対してバリデーション
- バリデーション OK ならその後の処理も変換後のデータを利用
- レコードの 作成/更新 とか検索とか
- バリデーション OK ならその後の処理も変換後のデータを利用
TL;DR
prepareForValidation
でバリデーション前の処理mb_convert_kana
で全角・半角の変換- 変換できない文字もあるので注意
regex
ルールで正規表現を使ってバリデーション- バリデーション通れば後はいつも通り