Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Eloquent Modelと親和性の高い オブジェクトを作る
Search
hiroshi sanbou
July 26, 2017
Programming
0
340
Eloquent Modelと親和性の高い オブジェクトを作る
hiroshi sanbou
July 26, 2017
Tweet
Share
Other Decks in Programming
See All in Programming
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
120
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
200
CSC307 Lecture 15
javiergs
PRO
0
270
ファインチューニングせずメインコンペを解く方法
pokutuna
0
210
KagglerがMixSeekを触ってみた
morim
0
340
Understanding Apache Lucene - More than just full-text search
spinscale
0
140
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
620
モダンOBSプラグイン開発
umireon
0
180
RailsのValidatesをSwift Macrosで再現してみた
hokuron
0
140
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
1.4k
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
1.2k
Windows on Ryzen and I
seosoft
0
420
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
240
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Building the Perfect Custom Keyboard
takai
2
720
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
140
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
250
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
250
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Claude Code のすすめ
schroneko
67
220k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
240
Transcript
Eloquent Modelと親和性の高い オブジェクトを作る
©2016 株式会社Loco Partners 自己紹介 名前 sanbou hiroshi 所属 Loco Partners
仕事 宿泊予約サイト「Relux」のサーバーサイドエンジニア CakePHP・Laravel
©2016 株式会社Loco Partners やりたいこと Reluxの部屋と料金の扱い 部屋 部屋料金 在庫 料金内訳 DBから取得
アプリケーション で算出
©2016 株式会社Loco Partners やりたいこと DBに依存するモデルのリレーションは簡単 部屋 部屋料金 在庫 料金内訳 DBから取得
アプリケーション で算出
©2016 株式会社Loco Partners やりたいこと これだけ
©2016 株式会社Loco Partners やりたいこと 検索条件とDBから取得した料金からアプリケーションで算出 部屋モデルの属性として扱いたい 部屋 部屋料金 在庫 料金内訳
DBから取得 アプリケーション で算出
©2016 株式会社Loco Partners やりたいこと 料金内訳オブジェクト
©2016 株式会社Loco Partners やりたいこと DB依存のオブジェクト と DBに依存しないオブジェクト を まとめて扱いたい
©2016 株式会社Loco Partners やりたいこと $room->estimate $rooms->toArray()
©2016 株式会社Loco Partners やりたいこと Eloquent Modelクラスから 結合に必要な部分を抽出した基底クラスを作る
©2016 株式会社Loco Partners Eloquent Modelのデータ構造
©2016 株式会社Loco Partners Eloquent Modelのデータ構造 Attributes と Relations
©2016 株式会社Loco Partners Eloquent Modelのデータ構造 Attributes:モデルのデータを集約したプロパティ
©2016 株式会社Loco Partners Eloquent Modelのデータ構造 Attributesを管理するTrait ・Attributesを扱える ・Attributesの型の保証ができる ・Mutatorを使える
©2016 株式会社Loco Partners Eloquent Modelのデータ構造 Relations:モデル間の結合関係
©2016 株式会社Loco Partners Eloquent Modelのデータ構造 Relationsを管理するTrait ・モデル間の結合関係を配列で保持 ・結合先のモデルを参照、操作できる
©2016 株式会社Loco Partners Eloquent Modelの実装
©2016 株式会社Loco Partners Eloquent Modelの実装 Attributesを扱えるようにする
©2016 株式会社Loco Partners Eloquent Modelの実装 Relationsを扱えるようにする
©2016 株式会社Loco Partners Eloquent Modelの実装 シリアライズ対象のAttributesをカスタマイズできる
©2016 株式会社Loco Partners Eloquent Modelの実装 toArray() を保証する
©2016 株式会社Loco Partners 完成 基底クラス
©2016 株式会社Loco Partners 完成 基底クラス
©2016 株式会社Loco Partners 完成 基底クラス
©2016 株式会社Loco Partners 完成 モデルとの結合
©2016 株式会社Loco Partners 完成 $room->estimate $rooms->toArray()
©2016 株式会社Loco Partners 完成 Reluxの部屋と料金をまとめて扱えるように 部屋 部屋料金 在庫 料金内訳
None