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
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
120
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
430
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
640
クラウドに依存しないS3を使った開発術
simesaba80
0
220
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
210
The Art of Re-Architecture - Droidcon India 2025
siddroid
0
160
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
160
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
360
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
310
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
3.9k
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
130
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
930
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
150
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
A Soul's Torment
seathinner
2
2.1k
Optimizing for Happiness
mojombo
379
70k
How STYLIGHT went responsive
nonsquared
100
6k
4 Signs Your Business is Dying
shpigford
187
22k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
110
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
45
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
330
We Are The Robots
honzajavorek
0
130
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
115
100k
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