学習備忘録

よく忘れてしまうのをここにメモしておく

2020-05-01から1ヶ月間の記事一覧

中間テーブルのカラムに値を持たせる方法

中間テーブルのstatusカラムに値を指定したいときはこんな感じで書く。 format('Y-m-d H:i:s'); $request->user()->send_like_user()->detach($user); $request->user()->send_like_user()->attach($user, ['status' => 'sended']); //ここがポインんと retu…

factoryでリレーション を持たせてモデルを生成する方法

状況 userモデルのリレーション先であるuser_profileのuser_idにuserモデルのidを持たせたい user_profileのfactoryはこんな感じ define(UserProfile::class, function (Faker $faker) { return [ 'user_id' => functio…

検索した値を保持しつつページネーションする方法 && リレーション先で条件を指定する方法

課題 検索している値を保持したままページネートしたい リレーション先で条件を指定する方法。 対処法 状況としては、userにリレーションしているuser_profileで検索を掛けたい。 リクエストのgetメソッドでageと、residenceが送られてきたとする。 その場合…

Formのテンプレート

@csrf <p class="h4 text-center mb-4">ユーザー情報編集</p> <div class="form-group"> <label for="user_name">ユーザー名</label> <span class="badge badge-primary">必須</span> </div>

テストを行うために必要になる設定あれこれ

課題 テストを行いたい時にスムーズにテストがかけるようにしたい 対処法 テスト時には他のデータベースを使用するために、phpunit.xmlを以下のように変更 <php> <server name="APP_ENV" value="testing"/> <server name="BCRYPT_ROUNDS" value="4"/> <server name="CACHE_DRIVER" value="array"/> <server name="DB_CONNECTION" value="mysql"/> //ここ </server></server></server></server></php>

入力フォームの初期値に正しい情報を入れる方法

課題 text入力ボックスで、バリデーション時には入力していた値、初期にはDBに登録されていた値を表示する方法 select入力ボックスで、バリデーション時には入力していた値、初期にはDBに登録されていた値を表示する方法 対処法 こちらは比較的簡単 <label for="job">職業</label> <span class="badge badge-primary">必</span>…

bladeでエラー内容を表示する方法。

課題 入力フォームでエラーが起きた際に、エラーが起きた項目の下にエラー内容を表示したい。 対処法 状況としてはuesr_nameにバリデーションをかけたとする。 こんな感じ。ポイントinputタグのclassにis-invalidを持たせることである。 <label for="user_name">ユーザー名</label> <span class="badge badge-primary">必須</span>

Laravel+Vue vue-cropperjsを使用しトリミングした画像データ(base64エンコードされたデータ)をアップロードする方法

課題 vue-cropperjsを使用しトリミングまではできたが、その画像をアップロードする方法がわからない。 対処法 vueコンポーネントでの書き方。まんまコピーすれば、ファイル選択及び、トリミングまで可能。 <template> <div> <input type="file" v-on:change="onFileChange()" class="mb-3"> <input type="hidden" :value="imgData" name="img_data"> <div class="content"> </div></div></template>

Laravel FormのInput幅を調整する方法。

課題 form画面を作る際、よくinput部分が画面一杯で幅を狭めたい時がある。その方法にいつも迷う。 対処方法 幅を狭めたい対象をdivで囲い、classにw-25、w-50、w-75のどれかを指定してあげる。 @csrf <p class="h4 text-center mb-4">ユーザー情報編集</p> <div class="form-group"> </div>

Carbonのformatをyyyy-mm-dd hh:mm:ss表示にしたい

created_atに登録するときは基本carbonでformatするがいつも、formatの仕方を忘れるのでここにメモしておく。 format('Y-m-d H:i:s');

トランザクションの貼り方

bulkInsertOrUpdate($this->items); DB::commit(); } catch (Exception $e) { DB::rollback(); Log::error($e->getMessage()); }

マイグレーションファイルに外部キー制約の付け方

bigIncrements('id'); $table->unsignedBigInteger('user_id'); $table->unsignedBigInteger('item_id'); $table->bigInteger('quantity'); $table->bigInteger('amount'); $table->foreign('user_id') ->references('id') ->…

バルクインサートをする方法

課題 DBにデータを登録する際に1件ごとにやっていると時間がかかるため、バルクインサートをしたい データがない場合にはcreate、すでに存在している場合はupdateするようにしたい。 対処 任意の場所にBulkInsertBuilder.phpファイルを以下のように作成する…

ミドルウェアについて

Laravelのミドルウェアに関して、よく迷いそうな点をメモしておく 標準で組み込まれているミドルウェアを調べたいとき App\Http\Kernel.php に色々書かれてる。 例えばmiddleware('auth')のauthについて処理を追いたい時は \App\Http\Middleware\Authentica…