With Eloquent models adding scopes is easy:
public function scopeMyScope($query)
{
// Do stuff to that $query
}
But how to add scope to
You could create a custom class that passes all functions to the DB
facade exept your custom queries. Like this:
exitCalls = ['get', 'find', 'pluck', 'first', 'value', 'chunk', 'chunkById', 'count', 'max', 'avg', 'exists', 'doesntExist'];
}
public function __call($name, $arguments)
{
$result = call_user_func_array([self::$instance->db, $name], $arguments);
if (in_array($name, $this->exitCalls)) {
return $result;
}
return self::$instance;
}
public static function table($string)
{
if (self::$instance == null) {
self::$instance = new CustomDB();
}
self::$instance->db = DB::table($string);
return self::$instance;
}
public function myCustomQuery()
{
self::$instance->db->where('name','=','frank');
return self::$instance;
}
}
Now you can simply call:
CustomDB::table('users')->myCustomQuery()->get();