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

[PHP][Laravel][SQL] LaravelのEloquentでFROM句の副問い合わせ

バージョン Laravel 6.0 概要 Eloquentで以下を表現する。 SELECT tbl.a, tbl.b FROM (SELECT a,b FROM hoge) as tbl 実現したいSQL SELECT user_id, sum(salary) as sum_salary FROM ( SELECT user_id, salary FROM users WHERE user_type = 1 ) AS target_…

[PHP][Laravel][SQL] LaravelのEloquentで WHERE A OR B を実施(条件によりorWhere条件を追加)

SQL

バージョン Laravel 6.0 概要 Eloquentで以下を表現する。 WHERE (hoge = 1 AND fuga = 2) OR (foo = 3 AND bar = 4) さらにOR条件は条件分岐により追加する/しないを判断させる。 実現したいSQL SELECT students.name, clubs.name FROM students LEFT JOIN …

[SQL] 条件(カラムの値)によってJOIN対象のテーブルを変える

SQL

概要 Aテーブルのカラム値によってJOINするテーブルをBテーブルまたはCテーブルのどちらかにする。 例) salesテーブルのsale_typeが1の場合はusersテーブルのnameを、 sale_typeが2の場合はcustoersテーブルのnameを取得する。 テーブル定義 // saleテーブ…

[PHP][Laravel] Laravelの条件付きvalidation(入力値を判定してバリデーションを追加するか判断する)

バージョン Laravel 6.0 概要 例えば、A項目の値がtrueだった時のみB項目を必須項目にするといったケース。 コード ■HogeRequest.php /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { $data = $…

[PHP][Laravel] LaravelのEloquentで更新前の値を取得

バージョン Laravel 6.0 概要 Eloquentでレコード更新(save)前に更新対象と変更前の値を取得する。 その他にも変更前情報関連のサンプルコードを記載する。 コード $user_info = UserInformation::find($user_id); $user_info->name = '山田太郎'; $user_inf…

[vue.js][Javascript] 配列、連想配列の要素数を取得

概要 Javascriptで要素数を取得する。 連想配列は.lengthでは取得できないので注意。 配列:ary.length 連想配列:Object.keys(arylist).length コード ◾️hoge.vue let ary = ['a', 'b', 'c']; alert(ary.length); // 3 let arylist = []; arylist['a'] = 1;…

[PHP][Laravel] JSON内の値(複数行)をバリデーションする

バージョン Laravel 5.8 概要 JSONで渡された複数行のデータに対してバリデーションする。 例として以下のJSONに対して、バリデーションを実施する。 ◾️JSON [{"id": 1, "val": "abcde"}, {"id": 2, "val": "あいうえお"}, {"id": 3, "val": ""}] ◾️バリデー…

[PHP][Laravel] ログイン後のリダイレクト先を変更する

バージョン Laravel 5.8 概要 ログイン後に遷移するリダイレクト先を例えばダッシュボード画面(/dashboard)にしたい。 コード ◾️LoginController class LoginController extends Controller { use AuthenticatesUsers; /** * Where to redirect users afte…

[Laravel][Vue.js] Laravel + vue で郵便番号から住所を取得

バージョン Laravel 5.8 Vue.js 2.6.10 概要 郵便番号-住所検索API (zipaddress.net)の外部APIを呼び出して郵便番号から住所を取得する。 ※なぜこの方式を採用したのかは最後に記載します。 以下の流れになる。 vueから自サイトのAPIを呼び出してLaravel側の…

[C++][MFC] C++(VC++)でダイアログに枠無しの子ダイアログを埋め込み、フレーム管理や共通化を実現する

バージョン C++:14 概要 例として複数のダイアログでトップエリアが同一の場合にそこを子ダイアログとして作成し、各ダイアログはそれを埋め込むだけで共通のデザインを実装できる。 要点 子ダイアログを親ダイアログで動的に生成する。 子ダイアログ自体を…

[vue.js] routerでpropsに値を渡してURL遷移する

バージョン Vue.js 2.6.10 概要 routerのpushでURL遷移する際にpropsにデータを渡す方法。 コード ◾️hoge.vue(遷移元) <script> export default { methods: { newPage() { this.$router.push({ name: "user_list" , params: {user_code : this.userid}}).catch(() </script>…

[PHP][Laravel] データベースクエリビルダ(Model)でleft joinの絞り込みon条件にパラメータを渡して複数指定する

バージョン Laravel 5.8 概要 LEFT JOINのON条件を複数指定する。 条件にはパラメータを渡したい。 コード ◾️Model $users = DB::table('users') ->leftJoin('posts as user_posts', function ($join) use ($type) { $join->on('users.id', '=', 'user_posts…