5

私が取り組んでいるプロジェクトでは、このページで説明されているように、Eloquent ORM スタンドアロンを使用しています。コードで DB::raw を使用できないことを除いて、すべて正常に動作しています。次の PHP エラーが発生しました。

Fatal error: Class 'DB' not found

Laravel自体ではなく、LaravelフレームワークのEloquentのみを使用しているため、それは正しいです。特定の SQL コードを使用できるように、DB::raw のようなものを使用することは可能ですか? 例えばwhere(DB::raw('YEAR(DateField)'),2013)

4

2 に答える 2

12

まあ、長年の解決策を探して、SOで質​​問し、インターネット上の他の場所で答えを見つけました.

Model::whereRaw('YEAR(DateField) = 2013')トリックを行います。

編集:DB::raw他の部分で使用する場合 (たとえば、 ではselect、次を使用できます。

use Illuminate\Database\Query\Expression as raw;
// You can now use "new raw()" instead of DB::raw. For example:
$yourVar = YourModel::select(new raw("count(FieldA) AS FieldACount"),'FieldB')->groupBy('FieldB')->lists(new raw('FieldACount'),'FieldB');
于 2013-09-19T12:13:22.387 に答える