I'm trying to create a class function which resembles how we used to fetch database listing and convert into a dropdown listing.
eg: DB::table()->where()->get()
what i would like to achieve in laravel custom class or through model is this
Dropdown::fetch()->toArray()
Dropdown::fetch()->toDropdown()
I tried to figure out how this can be done through google. But couldn't find any solution to it.
I'm using laravel 5.8
--
Edit - Sample Code added
Code tried:
namespace App\Http\Models;
use DB;
use Closure;
use BadMethodCallException;
use Illuminate\Support\Traits\Macroable;
use Illuminate\Database\Eloquent\Model;
class Dropdown extends Model
{
    private $result = [];
    private $default;
    public function _cities(){
        $tbl_cities     =   config("tables.TBL_meta_cities");
        $result         =   DB::table($tbl_cities)->select('id', 'cityname')
                                ->orderBy('id')->get()->toArray();
        $this->result   =   $result;
    }
    public function _select(){
    }
    public function _list(){
        return $this->result;
    }
    public function _setDefault($def=''){
    }
    public static function __callStatic($method, $parameters)
    {
        $action     =   '_'.$method;
        if(method_exists(get_called_class(), $action))
            self::$action(...$parameters);
        else echo 'not found';
    }
    public function __call($method, $parameters)
    {
        $action     =   '_'.$method;
        if(method_exists($get_called_class(), $action))
            self::$action(...$parameters);
        else echo 'not found';
    }
}
and i tried
Dropdown::cities()->list()
but ended with bugs
 
    