2021-01-01から1年間の記事一覧

Mac に Xdebug をインストールして VSCode でデバッグする

経緯 ちょっとしたサンプルプログラムをホストマシンで試すときに、いつも var_dump() デバッグ使ってたけどちょっとしたサンプルプログラムだろうが何だろうが Xdebug 使ったほうがもっと楽になるよね、ハム太郎。 手順 Debug Build が no になっていること…

Laravel でアクセストークンを header に含むときのAPIのテストを書く

いつ使うの? SPAではないプロジェクト(アクセストークンの取得タイミングがMPAでのログイン時) 一部画面でアクセストークンを含むAPIを叩いている コード post('/login', [ 'email' => 'hoge@example.jp', 'password' => 'password' ]);…

Laravel で画像をアップロードする Controller のテストを書く

Laravel で画像アップロードのController周りのテストを書いたことがなかったので備忘録 post('image/upload', ['images' => UploadedFile::fake()->image('hoge.jpg')]); $res->assertRed…

親のチェックボックスに紐付けたチェックボックスを全てチェックする

親のチェックボックスのチェック状態を親に紐付けた子供のチェックボックスにも反映させたい ↓こういうやつ これをピュアJSで書いたときの備忘録 コード 解説 HTML 親チェックボックスに子供を紐付ける用のカスタムデータ属性(data-id="1")をつける (親であ…

Carbon の diffInDays() は時間まで見ている

みんな大好きCarbonで対象日が今日の何日後かを知りたいときに, 想定していた挙動と違っていたのでメモ 対象日が本日の何日後かを知りたい 2021-11-15が本日(2021-11-14)の何日後かを知りたいとき >>> now()->diffInDays(Carbon\Carbon::parse('2021-11-15')…

PHPで半角数字を漢数字の単位付きの表記に変換したい

PHP

530000 → 53万みたいに漢数字の単位を付けたかった。 タイトルに漢数字って書いてあるから詐欺ってるみたいだけど五三万への変換は今回はやりません。🙇🏿‍ 早速コード

ブラウザの Console をタイマー代わりに使う

電卓使いたいときにブラウザの Console 使う人間なので、タイマーも Console で完結させたかった 1秒ごとに Console に秒数を表示する let sec = 0; const intervalId = setInterval(() => { ++sec; console.log(sec); }, 1000); 特定の秒数になったらカウン…

Bootstrap を使ってテーブルの行をクリックした時にコンテンツを展開したい

テーブルの各行をクリックした時に行の下にコンテンツを表示する。 一覧に表示する列数が多いけど横スクロールしたくないときに使う。 tr > td の中に div を書いてたりするのでマークアップ警察は見るな 要点 ① クリックする行の tr タグに開閉トリガーをつ…

Laravel で ORDER BY を複数指定する

Laravel で SELECT * FROM samples ORDER BY column1 DESC, column2 ASC みたいに ORDER BY を複数指定したい場合の書き方 orderBy('column1', 'asc')->get(); もしくは orderBy('column1')->get(); 何故か毎回連想配列でできると思いこんでApp\Models\Sampl…

Vue.js でファイルアップロードをする

Vue.js というより axios でファイルアップロードをしたかった 保存ボタンがなく、アップロード時にサーバーに送るのを想定 サーバーサイドのFWは Laravel を想定 <template> <div> <input type="file" ref="image" accept="image/*" name="image" @change="uploadImage" /> </div> </template> <script> import axios from "axios"; export default { name: "…

HTML と CSS のみでドラえもんを作る

(割とやりつくされたネタだから今更感すごいけど。。。) [ドラえもん CSS] とかでググると実装方法がわかってしまうため今回は終始ググらないようにして実装 できたもの 実装 感想 所詮丸と直線の組み合わせだし position とか使わんくても Flexbox だけでモ…

JSでブラウザの位置情報を取得する

(function () { if (!navigator.geolocation) { console.warn("Geolocation APIを利用できない環境"); return; } navigator.geolocation.getCurrentPosition( (positions) => { // 位置情報の取得成功時の処理 console.log(positions.coords.latitude, posit…

JSで任意の個数分の配列を作成する

PHPで言うところの range(1, 20) をやりたかったけどJSにはそれらしき機能がなく毎回調べているのでメモ [...Array(5).keys()] // [0, 1, 2, 3, 4] Array.from(Array(5).fill().keys()) // [0, 1, 2, 3, 4] indexを0以外から始めたいときはmapで足してあげる…

配列を任意の個数で分割したい

PHP

array_chunk() みたいに全部均等ではなく, 3個, 2個, 2個, 6個, 1個, 1個 ... みたいに分割数が可変な配列を作りたかったときに地味にハマったのでメモ

Terminal 起動時に 「You have new mail.」 と表示された場合の対処法

Mac

ホストマシンに設定したテスト用の cron が失敗してた時にメールが届いてた 放置してたけど地味に鬱陶しかったので対処したときのメモ $ mail >U 1 # 未読のメールが件数分表示される >N 2 >N 3 >N 4 ? d* ? q mail コマンドで未読メールの一覧を表示 適当に…

Laravel でQueryBuilderで組み立てられたSQLを確認する方法

QueryBuilder(or Eloquent ORM)で組み立てたSQLを確認したい時に使う いずれも tinker で実施 ①QueryBulderから確認する場合 >>> App\Models\User::where('id', 1)->toSql() => "select * from `users` where `id` = ?" ②複数のQueryBuilderから確認したい場…

PHP で Selenium を動かすためにやったこと

Selenium 童貞捨てたのは Python だったけど使い慣れてる PHP でも Selenium を使いたかったので備忘録 以前やった内容を後日まとめてるのでもしかしたら手順に抜けがあるかも。。。 前提 手順 1. ChromeDriver のダウンロード 2. chromedriver のパスを通す…

USJ 行きましたメモ

※この記事にはUSJのアトラクションである 鬼滅の刃 XRライド や スーパー・ニンテンドー・ワールド に関するネタバレがあります。 知人の誕生日&鬼滅コラボを目当てにユニバ行ってきたので備忘録 エクスプレス・パスの購入 入場券付きホテルの予約 入場待ち…

Composer のパッケージを作成した🎉

前からやってみたいと思いつつ後回しにしていた。。。 文字列をLeet文字に変換するっていう使い所がないパッケージだけど作れたことに満足:)

Laravel の Eloquent ORM でサブクエリを作る

日付単位で number の合計が10以上のレコードのみを抽出する データ id target_date number 1 2021-09-01 1 2 2021-09-02 2 3 2021-09-01 3 4 2021-09-03 4 5 2021-09-04 4 6 2021-09-11 2 7 2021-09-06 5 8 2021-09-12 23 9 2021-09-12 10 10 2021-09-23 20…

テーブルの中で重複しているレコードを抽出する

マスターデータ作るときに何のデータが重複してるかの確認したい時にいつもググってるので整理しておく ただの確認用なのでサブクエリとかは使わない テストデータ id character_name 1 炭治郎 2 伊之助 3 善逸 4 カナヲ 5 禰豆子 6 炭治郎 7 禰豆子 炭治郎…

Seleniumでタイピング

前提 手順 1. 初期起動画面待機 2. 画面上の特定のボタンを押す 3. 要素をスクショする 4. スクショした画像から文字周辺をトリミング 5. 文字認識の精度のための画像の調整 6. 文字認識 7. タイピング 前提 Seleniumを動かすための設定などは済んでいる jpn…

CodeIgniter3 の QueryBuilder でサブクエリを作る

databaseの接続設定は済んでいる前提 $subQuery = $this->db->select('count(*) as column_count, sample_id')->get_compiled_select('table_a'); $this->db->select('*')->join("({$subQuery}) AS table_a", 'table_a.sample_id = samples.id', 'left', fal…