はじめに
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-deploy
npm i -g ios-deploy
JavaScript で 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.dump
mysql [options] new_db_name < db_name.dump
RENAME 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
を使う