ひでメモ

プログラムについて勉強したことを書きます。たぶん。

【根本未解決】特定のユーザだけ nvm で Node.js のインストールができなかった

事象 デプロイ用のユーザで Node.js の別バージョンを入れようとしたらなぜか N/A のように存在しない扱いになってしまい、インストールができませんでした。 $ nvm install lts/carbon Version '' (with LTS filter 'carbon') not found - try `nvm ls-remo…

【PHP】文字列の一部分を切り取りたい場合 mb_substr を使いましょう

PHP

タイトルは自戒です。 概要 日本語(マルチバイト文字)に対してsubstr()を使用してDB保存時にエラーになってしまった… ※ DBは Postgresql です ERROR: invalid byte sequence for encoding "UTF8": 0x8b ちゃんとエラーになるんですね。賢い… 対処 日本語など…

【Laravel】Laravel のバージョンアップでバリデーションルールの微妙な仕様変更に対応した

Laravel のバージョンを 5.X => 8.X にアップデートした際に FormRequest のバリデーションルールの仕様が微妙に変わっていてテストがコケました。 2点だけですがせっかく調べたので書き残しておきます。 どこを調べたのか ドキュメント見ても1行でさらっと…

【PHP】unlink()・mkdir() のちょっとした便利な使い方

PHP

ディレクトリ内の全ファイル削除 rmdir()はディレクトリが空でないと使えないため、事前にディレクトリ内のファイルをすべて削除しようと思い PHP のマニュアルを調べていました。 するとunlink()のページのコメント に下記のようなコードを発見。 array_map…

【PHP】引数の型不一致エラー TypeError は Exception では拾えない

PHP

問題 以下のようなコードで catch で拾っているはずと思っていたエラーがそもそも拾えていませんでした。 try { // ここで関数の型不一致エラー発生 } catch (Exception $e) { // キャッチしたエラーをログに出力 } 原因 関数の型が不一致だった場合に発生す…

【Laravel】ディレクトリを削除するメソッドにディレクトリを削除しないオプションがあった

Laravel にはディレクトリごと中身のファイルが削除できるdeleteDirectoryメソッドがあります。 ファイルストレージ 8.x Laravel deleteDirectory メソッドを使用して、ディレクトリとそのすべてのファイルを削除できます。 ドキュメントにもこのように書い…

【Laravel】レスポンスでファイルを返した後にファイルを削除する処理のテスト

Laravel で「ファイルをダウンロードした後はそのファイルは削除」する処理を実装したときにテスト方法にちょっと手間取ったのでメモです。 前提 Laravel では以下のように書けばファイルをダウンロード後、そのファイルを削除してくれます。 return respons…

Lodash でオブジェクトの配列の中から日付が最も遅い日を取得する

オブジェクトの配列の中から日付の最大値(最も遅い日)を取得するときに Lodash を使ったら一発だったのでメモ。maxByを使います。 lodash.com 以下のようにプロパティとして日付を持っているオブジェクトの配列があるとします。 今回やりたかったのはこの中…

LaravelのEager Loading(複数・ネスト)

Laravelでモデルにリレーションを設定して、withメソッドでその参照先を引いてきてくれる機能、Eager Loadingっていうんですね。 laravel.com これを複数設定していたり、参照先で引いてきた先でもさらにリレーションが設定してあって(ネストでいいんですか…

学習メモブログ始めてみます

プログラムを学習したときに調べたことや躓いたことなどを雑多にまとめていきたいと思います。読みやすさは二の次で。