Laravel で withCount と having を使って絞り込み



カテゴリー Programming

はじめに

Laravel で Has Many や Belongs To Many なリレーションを持つモデルに対して、withCounthaving を使って対応モデルの数を意識した絞り込みを行う方法。

使用イメージとしては、下記などが考えられる。

  • 顧客(customer) が n人以上いるお店(shop)を絞り込む
  • 部屋(Room)の収容可能人数と、利用者(user)数を比較して空きがあるものを絞り込む

TL;DR

  • Model::withCount('xxxx')->having('xxxx_count', '>', 1) のようにすれば良い
続きを読む

はじめに

PHP でネスト構造の XML(SimpleXMLElement)を、再帰処理で配列(array)に変換する方法を整理した。

TL;DR

続きを読む

はじめに

Laravel の Form::select で空の選択肢ありのセレクトボックスを出す方法をまとめた。

TL;DR

続きを読む

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 を組み合わせて対応
続きを読む

r17n


Softwear Engineer


Fukuoka