2022-01-01から1年間の記事一覧
課題 セッション名を指定して session_start() すると、セッションが取得できなかったのでメモ。 結論 セッション名を指定するときに、「.」ドットは使わない! 例 セッション名を「.」ドットで繋いで session_start() すると、セッションを取得できない。 …
環境 MAMP PHP 7.4.16 やりたかったこと PHPでCSVを出力する機能を作っていて、レスポンスヘッダーを下記のように設定したかった。 Content-Disposition: attachment; filename=ファイル名.csv Content-Type: text/csv 課題 下記のメソッドを使ってレスポン…
課題 バリデーション失敗時に勝手に意図しないhtmlレスポンスを返す。 解決の過程 ReactとLaravelで開発中に、データ更新時と登録時にたまに302レスポンスが返ってくる。 コントローラまで処理が到達していない フォームリクエストで止まっているっぽい バリ…
課題 CookieファサードとPHPのfilter_inputで取得できるcookieの値が異なる。 Laravel外からcookieを使用したいが、暗号化されているため使用できない。
環境 PHP 8.0.16 CentOS Apache 2.4 課題 本番環境にて画像をアップロードしようとしたら、 413 Content Too Large のエラーが返ってくる。 解決方法 php.ini で、 upload_max_filesize と post_max_size を確認する。 まず、そもそもどこの php.ini を読み…
課題 本番環境にて、下記のコードでアップロードできなかった。 ブラウザのネットワークタブで確認すると、500エラーとだけ表示される。
app/Http/Middleware/Authenticate.php のリダイレクト先を名前付きルートに変更する。 Sanctumで認証しているが、これでいけた expectsJson()) { return route('login'); // <-ここを名前付きルートに変更 } } 公式にも書いてある Note: 独自の/login エン…
こんな感じで .ssh/config に2つ登録したとする // .ssh/config Host github.com.first HostName github.com IdentityFile ~/.ssh/id_rsa_first User git Host github.com.second HostName github.com IdentityFile ~/.ssh/id_rsa_second User git 秘密鍵を…
LaravelでREST API作成中にハマった。Postmanで動作確認中。 結論 リクエストヘッダーの Content-Type のチェックが外れていないか確認! 値は multipart/form-data; boundary=<calculated when request is sent> となっているはず。 ハマった こんな感じで、POSTリクエストで、Bodyを form-da</calculated>…
定数をクラスファイルで管理する app/Consts/CommonConst.php を作成した。 [ // 省略 'CommonConst' => \App\Consts\CommonConst::class, ] ] app/Http/Controllers/Api/…
メモ程度 課題 表題の通り 対策 キー名RefererとOrigin、値はURLでリクエストヘッダーに設定してあげる。 参考 refererヘッダーまたはoriginヘッダーのチェック SPAからこのヘッダーが送られないと認証エラーになる Postmanで動作確認するときに注意する qii…
Laravel Sanctumを使ってログイン機能を実装中にエラーに遭遇。 思考の整理と次に時間を溶かさないようにするためのメモ 結論 .env での SESSION_DOMAIN='localhost' ここが間違えていた。 .env にてセッションを設定するドメインを設定しているので、ドメイ…
多対多のER図 リレーション先を取得する モデルで追加したメソッド名を with('メソッド名') の引数に追加する ※リレーション先のテーブル名やクラス名をwith()の引数にするわけではない! // App/Models/Food.php /** * foodを持っているフードアイコン */ p…
やりたいこと PHPで、多次元配列があって、指定したキーの値で、昇順・降順の並び替えができるようにしたかった。 並び替えの後、指定した番目から指定した件数分の要素だけを取得したかった。 つまり、ページネーションのイメージ。 SQLでやればこんな感じ…
普段使っているPCとは別のPCで git clone したあとに、PHPUnitを composer install しようとしたときのエラー 環境 Windows11 WSL2 php 7.4.3 エラー文 it is missing from your system. Install or enable PHP's dom extension. it is missing from your sy…
困ったこと filter_input(INPUT_SERVER, 'SERVER_NAME') これでサーバーの名前をとって、 localhost かどうかで振り分けていたが、PHPUnitを使った時に、 null で返ってきたので代替法。 解決策 php_uname('n') これでPC名がでる。 PHP が稼動しているオペレ…
結論 cacert.pem(CA証明書をダウンロードする) php.iniを書き換える そもそもcURLが使える状況かどうか php -m で確認 phpinfo() で確認 PHPでcurlを使えない場合の対処法 - Qiita grepで確認 % php -i | grep cURL cURL support => enabled cURL Informat…
IoTエンジニア養成教本の学習記録です。 改訂新版 IoTエンジニア養成読本 Software Design plus作者:片山 暁雄,松下 享平,大槻 健,大瀧 隆太,鈴木 貴典,竹之下 航洋,松井 基勝技術評論社Amazon 機能とサービスの選択 センサネットワークのバックエンドでデー…
IoTエンジニア養成読本の学習記録です。 改訂新版 IoTエンジニア養成読本 Software Design plus作者:片山 暁雄,松下 享平,大槻 健,大瀧 隆太,鈴木 貴典,竹之下 航洋,松井 基勝技術評論社Amazon LPWAとは Low Power Wide Area の略で、消費電力を抑えて遠距離…
IoTエンジニア養成読本の学習記録です。 改訂新版 IoTエンジニア養成読本 Software Design plus作者:片山 暁雄,松下 享平,大槻 健,大瀧 隆太,鈴木 貴典,竹之下 航洋,松井 基勝技術評論社Amazon デバイスをゲートウェイ経由で接続する データの流れは、「セン…
達人に学ぶSQL徹底指南所の学習記録です。 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ (CodeZine BOOKS)作者:ミック翔泳社Amazon SQLで同一行内の列同士の値を比較するのはWHERE句で記述すればいいだけだが、異なる行を比較するのは工夫…
達人に学ぶSQL徹底指南所の学習記録です。 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ (CodeZine BOOKS)作者:ミック翔泳社Amazon SQLで同一行内の列同士の値を比較するのはWHERE句で記述すればいいだけだが、異なる行を比較するのは工夫…
達人に学ぶSQL徹底指南所の学習記録です。 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ作者:ミック翔泳社Amazon 要点 何を持って集合と見なすかに注目する。 集合の性質を調べるための条件の使い方 COUNT(DISTINCT col) = COUNT(col) :c…
達人に学ぶSQL徹底指南所の学習記録です。 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ作者:ミック翔泳社Amazon データベースにnullが一つでも含まれれば、クエリから正しくない結果が返される可能性がある。 とりあえずこれは覚える! 3…
達人に学ぶSQL徹底指南所の学習記録です。 できること 行間比較において相関サブクエリに頼っていた部分を、ウィンドウ関数で書けるようになる。 手続き型言語において、「順序づけされたレコード集合をfor文やwhile文のループで回してカレントコードを1行ず…
達人に学ぶSQL徹底指南所の学習記録です。 やってること ラベルの読み替えを行なっているだけ。 要点 CASEは「式」だから、列名や定数をかける場所には常にかける 集約関数の中で使うことで、行持ちから列持ちへの水平展開が可能 逆に、集約関数を条件式に組…
やりたかったこと mysqliで直前にINSERT処理で追加したレコードの主キー(id)を取得したかったのでメモ。 実装方法 mysqli::$insert_id を使う。 直前のクエリで更新された AUTO_INCREMENT フィールドの値を返します。接続での直前のクエリがない場合や ク…
課題 PHPで $name = (string)filter_input(INPUT_POST, 'name') でPOSTの値を取得できない。 原因 $_POST() または (キャスト)filter_input(INPUT_POST, 'key') では、そもそも application/json を取得できない。 公式リファレンスでは下記のように書いてあ…
前提 テーブル内の全レコード数を取得したかった。 id が PRIMARY キー 途中で DELETE されてるレコードもあるので id が不連続となっている。 そのため、 ORDER BY id DESC LIMIT 1 で id の値がそのままレコード数というわけにもいかなかった。 概要 今ま…
やろうとしたSQL ページネーションを作ろうと思って書いたSQL SELECT * FROM (SELECT * FROM samples WHERE id < 30 ORDER BY id DESC LIMIT 1) UNION ALL SELECT * FROM (SELECT * FROM samples WHERE id >= 30 ORDER BY id ASC LIMIT 6) エラー Every deri…