はじめに
Laravel でネストした構造(リレーション)において、取得するカラムを絞りつつ Eager Load する方法についてまとめた。
TL;DR
- カラムの絞り込み:
:の後に,区切りでカラムを列挙 - ネスト構造:
.で繋げる - 上記の組合せ:
withに渡す引数を分けて書くwith(['posts:title', 'posts.images:url'])
Laravel でネストした構造(リレーション)において、取得するカラムを絞りつつ Eager Load する方法についてまとめた。
: の後に , 区切りでカラムを列挙. で繋げるwith に渡す引数を分けて書くwith(['posts:title', 'posts.images:url'])/events?areas=1,2,3 のような URL で検索などの処理を行う際に、良い感じにバリデーションする方法を調べた。
※なるべく自前で各値が DB の値と一致するかを検証したくないよね、というお話。
prepareForValidation 内でデータを変更すると幸せになれるgetValidatorInstance でもいけるかも(試してない)Cordova の iOS ビルドなどで ios-deploy を使っていて、以下のエラーが出た場合の対処方法。
1 | ... |
ちなみに、自分の環境ではビルド・デプロイまではできるが、Mac に繋いで Safari 経由でのデバッグができない(iOS デバイスを認識しない)という状態だった。
ios-deploy をアンインストール→再インストール で解決rm ~/Library/Developer/Xcode/DerivedData/ios-deploy-*mv でリネームするのが良いnpm un -g ios-deploynpm i -g ios-deployJavaScript で 16進数 ランダム文字列を簡単に生成する方法を調べた。
CDN を使う方法(chance.js)、npm からインストールする方法(crypto-random-string)についてまとめた。
chance.string({length: 8, pool: '0123456789abcdef'})cryptoRandomString({length: 8})JavaScript で 16進数の固定長文字列を判定する方法を調べた。
/^[0-9a-f]{64}$/i.test(target) で確認できるMySQL で DB を複製(dump & load)する方法、リネーム(新DBに対して旧DBのテーブルを移動)する方法について整理した。
内容としては MySQLでdumpせずに “RENAME DATABASE” を実現する - Qiita の通り。
mysqldump [options] db_name > db_name.dumpmysql [options] new_db_name < db_name.dumpRENAME TABLE db_name.table_name TO new_db_name.table_name × 全テーブルChrome 拡張機能で、同梱しているファイルにアクセスする方法について整理した。
本記事では、画像をページ中に追加表示する例を示す。
manifest.json で web_accessible_resources を指定* などのワイルドカードが使用できるchrome.extension.getURL で URL を取得して使うdisplay, visibility プロパティについて簡単に整理した。
display: none; ⇔ display: block;(flex, etc…) で要素の 表示/非表示visibility: hidden; ⇔ visibility: visible; で要素の 表示/非表示display: none; も visibility: hidden; も、アクセシビリティ(読み上げ)に影響が出るChrome 拡張機能で外部サイトへの HTTP リクエスト時に Request Headers をカスタマイズする方法について整理した。
User Agent を変更したり、Cookie を付与したり、色々とできるようになる。
chrome.webRequest.onBeforeSendHeaders を使う