Laravel の実行環境を確認する方法



カテゴリー Programming

はじめに

Laravel の実行環境を確認する方法をまとめた

TL;DR

  • app('env'), app()->environment(), App::environment() で現在の実行環境(文字列)の取得
  • app()->environment('xxxx'), App::environment('xxxx') で指定値との一致確認(bool)
    • 引数は複数指定可(どれかと一致すれば true)
  • isLocal()runningUnitTests() なども利用可能
  • view ファイルでは カスタム if 文 を定義して使うのがよい
続きを読む

Laravel で PDF ファイルをブラウザで開く



カテゴリー Programming

はじめに

Laravel で PDF ファイルをブラウザで開く方法を整理した。

PDF ファイル自体は Laravel が動作するサーバ内だったり、S3 だったりに置いてある想定。

TL;DR

  • Storage::disk()->get() で PDF ファイルを取得
  • response に PDF ファイルを設定
  • headerContent-type: application/pdfContent-disposition を指定
続きを読む

Laravel で CSV ファイルから DB seed する



カテゴリー Programming

はじめに

Laravel で CSV ファイルをもとに DB seed する方法を整理した。

TL;DR

  • SplFileObject で読み込んで foreach で 1行ずつ処理
    • 1行目はヘッダ行 = DB カラム名
  • ヘッダ行とデータ行を array_combine で合成
  • 合成した配列を使ってレコードの 検索/作成/更新 を行えば OK
  • Bulk insert/update には未対応なので、大量データの処理には向かないかも
続きを読む

Laravel で @section がある場合のみ HTML を表示



カテゴリー Programming

はじめに

Laravel で @section の設定がある場合のみ HTML を表示する方法を整理した。

例えば「共通的に使うので、レイアウトファイルにパンくずリストを定義したい」けど、「パンくずリストの表示指定が無いページでは、パンくずリスト自体を表示したくない」のようなケース。
※わかりやすい例が思いつかない。

TL;DR

  • @hasSection を使う
  • 複合条件の場合は @ifView::hasSection を組み合わせて対応
続きを読む

はじめに

davejamesmiller/laravel-breadcrumbs を使って、Laravel でパンくずリストを作成する方法を調べた。

TL;DR

  • composer require davejamesmiller/laravel-breadcrumbs でインストール
  • routes/breadcrumbs.php でパンくずリストの定義
    • リスト名、親階層、表示内容とリンク先 を指定
  • Breadcrumbs::render('list_name') でパンくずリストの描画
    • @section, @yield と組み合わせると便利
続きを読む

Laravel で Enum (with BenSampo/laravel-enum)



カテゴリー Programming

はじめに

BenSampo/laravel-enum を利用して、Laravel で Enum を使う方法を整理した。

※機能が豊富なので、自分が使った範囲のみ。

TL;DR

続きを読む

はじめに

Laravel で 全角カタカナ・半角英数記号 に変換しつつバリデーションする方法について整理した。

要件としては下記。

  • バリデーションの前にデータを変換
    • 「全角かな・半角カナ」→「全角カナ」
    • 「全角英数記号」→「半角英数記号」
  • 変換したデータに対してバリデーション
    • バリデーション OK ならその後の処理も変換後のデータを利用
      • レコードの 作成/更新 とか検索とか

TL;DR

  • prepareForValidation でバリデーション前の処理
    • mb_convert_kana で全角・半角の変換
      • 変換できない文字もあるので注意
  • regex ルールで正規表現を使ってバリデーション
    • バリデーション通れば後はいつも通り
続きを読む

はじめに

Laravel でネストした構造(リレーション)において、取得するカラムを絞りつつ Eager Load する方法についてまとめた。

TL;DR

  • カラムの絞り込み: : の後に , 区切りでカラムを列挙
  • ネスト構造: . で繋げる
  • 上記の組合せ: with に渡す引数を分けて書く
    • with(['posts:title', 'posts.images:url'])
続きを読む

はじめに

/events?areas=1,2,3 のような URL で検索などの処理を行う際に、良い感じにバリデーションする方法を調べた。

※なるべく自前で各値が DB の値と一致するかを検証したくないよね、というお話。

TL;DR

  • prepareForValidation 内でデータを変更すると幸せになれる
  • getValidatorInstance でもいけるかも(試してない)
続きを読む

r17n


Softwear Engineer


Fukuoka