DEV Community

dala00
dala00

Posted on • Originally published at crieit.net

LaravelのModelからSQLを直接実行する方法

LaravelでSQLを直接実行する方法というのは、一般的には下記のようにDBのFacadeを使用する方法になる。

DB::statement($query);
Enter fullscreen mode Exit fullscreen mode

Laravelだと上記で問題ないのだが、EloquentはLaravelでなくても使用できるので、プロジェクトに個別にEloquentを入れている場合はDBファザードが無いため上記が実行できない。

その場合、モデル自体からDBファザードと同じものを取得する方法があるためそれで同じ様にしてSQLを実行することができる。

まず適当にモデルのインスタンスを作成する。

$user = new User;
Enter fullscreen mode Exit fullscreen mode

あとは同様。

$user->getConnection()->statement($query);
Enter fullscreen mode Exit fullscreen mode

Top comments (0)