PHP

【Laravel】FROM句にサブクエリを入れて集計したい

type total subtotal 1 10 0 1 0 20 2 100 0 2 0 200 LaravelでUNION ALLしたこういう結果表を集計したいときは以下のように書く。 DB::table(DB::raw('(' . $subQuery->toSql() .') AS s1')) ->mergeBindings($subQuery) ->selectRaw( 'SUM(s1.total) + SUM…

【PhpStorm】読み取り専用でデータベースに接続する

クリティカルなデータベースにPhpStormから接続する時は、[Data Sources and Drivers] → [Options] にてRead-onlyにチェックを入れることで、読み取り専用状態でデータベースにアクセスすることができる。 その他のJetBrains製IDEでも同様かと思われる。

【Apple Silicon】Docker Desktopはこまめに更新しよう

起きたこと Dockerコンテナ上のComposerでパッケージを追加しようとした時にCannot allocate memoryエラーが出た。 [root@8b736af411ab www]# composer require --dev squizlabs/php_codesniffer mmap() failed: [12] Cannot allocate memory mmap() failed:…

【Laravel】ユーザー入力値をハッシュ化された内容と比較したい

use Illuminate\Support\Facades\Hash; ... $user = User::where(['id' => 1])->firstOrFail(); // passwordはHash::make()で作成 $beforeHash = $request['beforeHash']; if (Hash::check($beforeHash, $user->password)) { echo("一致しました!"); } else…

【Laravel】Eloquentでeagar loadingした結果をごにょごにょしたい

withで指定した要素に無名関数を渡す order by Order::with(['order_detail' => function ($query) { $query->orderByDesc('created_at'); }])->get(); select * from `order_details` where `order_details`.`id` in (1) order by `created_at` desc where …

【Laravel】Eloquentでhavingした結果をpaginateしたい

Laravelでhaving句を使って集計を行うとき、こんな書き方をする。 Model::withCount('xxxx')->having('xxxx_count', '>', 1); ただ、paginateを付けたい場合 Model::withCount('xxxx')->having('xxxx_count', '>', 1)->paginate(20); とやると、エラーが出る…

【PHP】Carbonで月末日付をsubMonthしたら死んだ話

PHP

PHPerからしたらありふれすぎた話だけど、2021/07/31の1ヶ月前をCarbonで取得しようとして死んだ。 なにがおきたか こうすると $date = new Carbon('20210731')->subMonth(1); echo($date); こうなる 2021-07-01 00:00:00 2021-06-30 00:00:00じゃないの? …

CodewarsでPHPのリハビリをしてる話

www.codewars.com 新しい職場でPHPを使うことになりそうなので、Codewarsでリハビリ中。

.htaccessはhttpd.confで有効化しておかないといけない話

PHP

タイトルの通りです。 mod_rewrite設定の為の.htaccessが動作しなかった時のメモ。 結論 httpd.confでDocumentRootに以下を設定する。 AllowOverride All

久しぶりにPHP環境を作った(Vagrant + PHPStorm + Xdebug)

PHP

12月から新しい環境でお仕事をさせていただくことになり、配属されるプロジェクトがVagrantを使ったPHPのプロジェクトということだったので思い出しもかねて環境構築してみた。 Vagrantの導入 VirturalBoxのインストール Downloads – Oracle VM VirtualBox V…

オンプレのLAMP環境をAmazonEC2に移行した話

iine-programming.hatenablog.com 前回からの続き。 1週間かけてやっとEC2へのアプリの移行が終わりました。 結構色々したのでやったことをメモ。 LAMP環境の構築 LINEbotはLAMPで動かしていたので合わせてEC2にミドルウェアをインストール。 Apache $ sudo …

LINEbotを作って遊んでる話

転職用のポートフォリオに記載した内容の転載です。 LINEbotとは? コミュニケーションアプリのLINEで動く、 ユーザーとメッセージのやり取りを自動で行うチャットボット。 何を作ったの? Messaging APIの応答メッセージ機能とプッシュメッセージ機能を利用…