学習備忘録

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

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

コントローラからjsに値を渡す方法

@jsonを利用する フロント側 <script> let companies = @json($companies); </script> -js側 - companiesにhtmlで指定した値がjson形式で入っている。 $(document).on("change", ".select-company", function(){ let val = $(this).val() companies.forEach(company => { if(v…

jquery複数の値入力周りのまとめ

課題 入力フォームで複数の値を入力したい 入力フォームの行を動的に増やした 動的に増やした入力フォームに対して、イベント追加したい イベントを検知した要素を取得したい 複数の値を入力するフォーム(select2など)を動的に増やした場合に、適切にpostす…

formを使用せずaタグでクエリーパラメータを送信する方法

課題 送信したいクエリパラメータの数が決まっていない formが使用できない 実装 フロント側 $requestにはkeyとvalueで構成された配列が入っている。 http_build_queryを使用し、$requestをkey1=value1&key2=value2みたいな形式にしている <a type="button" class="green-border-btn small-btn margin-right-10" id="exportAccountsCsv" href="{{ route('accounts.export_csv') }}"> </a>

ECSでのタスク実行方法

課題 fargateで運用している場合、sshで接続してコマンドを実行ということができない。そのため外部からツールを利用して実行しなければいけない 対処法 今回は例としてseedを考える seed用のタスク定義を作成する. { "networkMode": "awsvpc", "cpu": "256"…

factoryでオリジナルの値を生成したいする方法

課題 facoryのチートシートに求める値が存在していないので自身で実装しなければいけない 対処法 factory内でランダムに値を生成する場合 define(UserProfile::class, function (Faker $faker) { $residence = ['東京都', '大阪府', '静岡県', '福岡県', '神…

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

中間テーブルの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…

バリデーション以外で$errors内容を表示する方法

課題 requestのvalidationに引っかかった際は$errorsに勝手に値が入るが、それ以外でエラーになったときは独自でerrorsに値を入れてリダイレクトさせなきゃいけない。 対処 以下のコードを参考に。withErrors()の引数が$errorsに入る。またwithInput()で元…