B3S
menu close

Laravel

Laravel6でSQLファイルからEloquent Modelを作成


ヤス

更新日:2021/08/04


目次

はじめに

システム開発をしていると、Viewにするほどではない複雑なSQLを利用する機会があります。
個人的にはSQL文やJOIN等の処理をプログラムソース上に記述したくないので、SQLファイルを作成してファイルを読み込むようにしています。
(個人的にはSQLの可読性や保守性が向上します)

また、普段データの取得にはEloquent Modelを利用しているので、作成したSQLファイルもEloquent Modelにしたかったので自作してみました。

ViewっぽいEloquent Modelを作成

ViewっぽいModelだと思っているので、名前はviewにしています。
Modelを保存しているディレクトリ(App\Models)にsqldataというディレクトリを作成し、そこにSQLファイルを配置することで利用できます。

仕組みとしては、BuilderfromSubを利用して、Eloquent ModelのFromにSQLファイルを設定しています。

利用方法

viewを利用する時は、$sqlnameを事前に設定することで通常のEloquent Modelを同様に利用できます。

参考サイト

下記のサイトを参考に作成しています。
生SQLからEloquent Modelを作る3つの方法