ぷっぽプログラミング備忘録

linux, javascript, php, C#, そのうちScalaとかアプリ開発とかやってみたいです。

Laravel

Laravel collectionのkeyBy()メソッドで、pluck()と似たようなことができる

概要 Laravelで、DBテーブルの取得結果を、特定のカラムをキーとして取得したい場合、調べるとpluck()がよくでてくる。 ただ、KeyBy()でもできる。 QueryBuilderなどではget()などでいったん取得してきておいて、後から加工するほうがいいケースもありそうな…

Laravelのクエリービルダー(query builder)でLATERALを使う場合

例 DB::table('foo as f') ->leftJoin( DB::raw(" LATERAL ( SELECT MIN(goods.amount) as min_amount FROM goods WHERE foo.goods_id = goods_id ) as temp_min_amount "), DB::raw('1'), '=', DB::raw('1') ) ->select('f.*', 'temp_min_amount.min_amount…

heroku + Laravel で外部サーバー上にあるデータベースに接続する

結論 herokuはデプロイが独特ですが、中身は普通のサーバーなので、 Laravelのconfigのdatabase部分に、データベースの設定をすれば動きました。 ただし、ご存知のように、herokuのLaravelの設定は.envに書いても意味ありませんので…。 heroku config:set DB…

herokuのconfigをまとめて設定する

Laravelの環境設定は.envで行います。 herokuには.envはpushできません。(.gitignoreで指定されているため) 方法は、 heroku config:set APP_DEBUG=false といった感じで、config:setで、.envに記載されたLaravelの環境変数を登録していく必要があります。…

Laravelのunittest(overload使う場合、mockだとonce()がテストされなかった。spyを使えばOKだった)

状況 Laravelのunittestで強い依存のあるメソッドをテストしたい。 また、強い依存のあるメソッド内で、あるメソッドが一度も呼ばれないこと をテストしたい。 class Foo { public function bar($isCallSituation) { //... 中略... if ( $isCallSituation ) …

Laravel 8 ルーティング初歩的設定 apache2

概要 久々に apache2の <VirtualHost *:80> DocumentRoot /var/www/laravel_src/laravel/public <Directory "/var/www/laravel_src/laravel/public"> AllowOverride All Allow from all </Directory> </VirtualHost> DirectoryでAllowOverride Allを指定すること。 ※厄介なのが、ルートパスのときは(.htaccessが動かなくても)動作する。そのため、改めてル…