Laravel Newsには良記事が満載なので、備忘録の意味合いも込めて、記事を簡単にまとめていこうと思います(翻訳ではないです)。

元記事

投稿日: 2018/04/16
URL: Leverage Eloquent To Prepare Your URLs

まとめ

<a href="{{ route('users.show', $user) }}">{{ $user->name }}</a>

というviewによくあるコードを

<a href="{{ $user->url->show }}">{{ $user->name }}</a>

と、coolに書こうぜというものです。
中身はとても簡単で、routeを返すクラス(UrlPresenter)をUserモデルに持たせています。

感想

実装は簡単ですが、いろいろな箇所で出て来るrouteを呼び出しを簡潔に書けそうです。
Model生成時にUrlPresenterも自動生成できるようにしておけば、考えることが減りそうでよい。

その他

調べている最中、laracasts/Presenterというのを見つけました。
今回の記事の$user->urlはミューテタを使っていますが、リファレンスでは$user->first_nameを大文字にして返す例が載っています。
こういった処理をUserモデルではせずに、Userモデルに持たせたPresenterで行うことで、ModelとView(Presenter)を分けています。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.