Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Eloquent Modelと親和性の高い オブジェクトを作る
Search
hiroshi sanbou
July 26, 2017
Programming
360
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Eloquent Modelと親和性の高い オブジェクトを作る
hiroshi sanbou
July 26, 2017
Other Decks in Programming
See All in Programming
sbt 2.0: takeoff
eed3si9n
0
160
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
780
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
170
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
気持ちぃ〜角丸 Squircle
ryu1013
0
310
カツオ、ご期待ください
suneo3476
0
190
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
220
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
250
contenteditable と日本語入力に向き合う
colorful12
0
200
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
3
410
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6.3k
Google's AI Overviews - The New Search
badams
0
1.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Ethics towards AI in product and experience design
skipperchong
2
440
For a Future-Friendly Web
brad_frost
184
10k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
440
Into the Great Unknown - MozCon
thekraken
41
2.8k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
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