I have a model called Bar
which extends Laravel’s Eloquent
class Bar extends Eloquent{ }
Now the problem is that I need to make some joins between multiple tables and for that I’d like to use the DB
class from Laravel to improve performance(using eloquent ends up costing me around 750 queries and 20 seconds to load).
Can i use DB
in the same model that extends Eloquent
?
If not, should i create another model?
Advertisement
Answer
Your models should extends IlluminateDatabaseEloquentModel
not Eloquent
Eloquent is basically the ORM laravel uses by default
use IlluminateDatabaseEloquentModel; class Bar extends Model { public function getFooAttribute() { return DB::table('bars')->value('foo'); } }
You can use the DB
facade almost anywhere to perform Query Builder SQL statements just fine
Hope this helps