カテゴリー
Linux

nunomaduro/larastan 1.0.3 で Laravel 8 の無編集のソースコードへのエラーに対応したメモ

まとめ

  • composer update nunomaduro/larastan:^1.0 --dev でアップデートしたところ、 Laravel インストールして生成された無編集のソースコードでエラーが発生した、
  • https://github.com/laravel/laravel/blob/8.x/app から最新ソースコードを適用することで解決したエラーもあった。
  • どうしても解決できないものは、 Ignoring Errors | PHPStan を参考にエラー抑制した。
カテゴリー
Linux

Laravel 8 、 Larastan 1.0.3 。API リソースクラスに対してプロパティが無いエラー、例えば Access to an undefined property App\Http\Resources\UserResource::$id. に対応する方法メモ

対応方法まとめ

  • その1
    • API リソースクラスの toArray メソッド冒頭に、例えば /** @var \App\Models\User $this */ と書く。
    • 要は、 PHPDocs で API リソースクラスで使用するモデルを $this に紐づければ良いようだ。
  • その2
    • クラスコメントに、例えば /** @mixin \App\Models\User */ と書く。
    • 要は、 PHPDocs で API リソースクラスに使用するモデルを混ぜ込めば良いようだ。
カテゴリー
Linux

Laravel 8 での Vue.js 3 を使った SPA に Bootstrap Icons を導入するためのメモ

なぜメモったか

Bootstrap Icons · Bootstrap 向けのオープンソース SVG アイコンライブラリ のページを見ると、インストールと使い方は書いてあるものの、それだけでは足りず、調べなければうまく使うことができませんでした。

ですので、調べた内容を、走り書き程度ですが、メモいたします。

カテゴリー
Linux

Laravel 8 の Vue.js 3 の SPA に laravel/ui を使わないで Bootstrap 5 を導入するまでのメモ

まとめ

カテゴリー
コンピューター

Laravel の `DATABASE_URL` を外部の環境変数 (server レベル) で設定している場合、 PHPUnit テストの 1 個目は通常に行われるのに 2 個目で DB 接続エラーとなってしまう問題を解決した

エラー対処まとめ

  • 今回の状況
    • Laravel 8.55.0
    • PHPUnit テストをインメモリ SQLite で行いたい。
    • DATABASE_URL を外部の環境変数 (server レベル) で設定している。
  • テスト用に DATABASE_URL を指定する以外に、 DB_CONNECTIONDB_DATABASE も指定する必要がある。
  • 次のように phpunit.xml に指定すればよい。
        <server name="DATABASE_URL" value="sqlite:///:memory:?foreign_key_constraints=true" force="true"/>
        <server name="DB_CONNECTION" value="sqlite"/>
        <server name="DB_DATABASE" value=":memory:"/>
カテゴリー
コンピューター

Laravel 6 のメールの絡む開発用に MailHog の Docker コンテナを構築する方法のメモ

まとめ

  • Docker 側のコードは mailhog/mailhog イメージを使うだけ。
  • Laravel 側では、 .env を変更するだけ。
カテゴリー
Linux

Docker コンテナ内の Laravel から外部サービスを使わずにメールを送信するために Docker コンテナ内に exim4 をインストールしたらできた、という記録

まとめ

カテゴリー
コンピューター

Laravel 6 。フォームリクエストクラスの `rules` メソッド内でルートで定義されている URI パラメータにアクセスしている場合でも、ユニットテストを行う方法 4 つ

カテゴリー
コンピューター

Laravel 6 。ファイルを扱うシンプルな CRUD API の例、その2。バリデーションとそのテストを作った。

はじめに

Laravel 6 。ファイルを扱うシンプルな CRUD API の例を作った (今後 Dropzon.js を試すために) – oki2a24 の続きで、バリデーションとそのテストを作りました。

カテゴリー
コンピューター

Vue.js 3 で Select2 をラップした SFC その2 。選択肢文字列以外の文字列 (ひらがなアルファベットなど) で絞り込む方法 (ちなみに Laravel 6 、 Vue.js 3 の環境)

やりたいこと

都道府県のセレクトボックスを Select2 で作る。フォーム入力で選択肢を絞りこめるが、このとき選択肢文字列だけではなくひらがな、アルファベット (半角) でも絞り込めるようにしたい。

Select2 に渡す選択肢の配列は次を想定している。

const options = [
  { id: "1", text: "北海道", hiragana: "ほっかいどう", alphabet: "hokkaido" },
  { id: "2", text: "青森県", hiragana: "あおもりけん", alphabet: "aomoriken" },
  { id: "3", text: "岩手県", hiragana: "いわてけん", alphabet: "iwateken" },
  { id: "4", text: "宮城県", hiragana: "みやぎけん", alphabet: "miyagiken" },
  { id: "5", text: "秋田県", hiragana: "あきたけん", alphabet: "akitaken" },
];

ちなみに本投稿は Vue.js 3 で Select2 をラップして SFC (シングルファイルコンポーネント) としてコンポーネント化する例 – oki2a24 の続きにあたります。

まとめ

次のことを行えば可能と予想し、実際に実現できました。

  1. Select2 へ渡す Options に適当なプロパティ A, B を追加する。
  2. Select2 で絞り込むときにプロパティ A, B も含めて検索する。