public function getAll($params = array(), $language_id) { //$columns = isset($params['columns']) ? $params['columns'] : array('*'); //$sort_column = isset($params['sort_column']) ? $params['sort_column'] : null; $sort_direction = isset($params['sort_direction']) ? $params['sort_direction'] : 'asc'; $page_index = isset($params['page_index']) ? $params['page_index'] : null; $page_size = isset($params['page_size']) ? $params['page_size'] : null; //$includes = isset($params['includes']) ? $params['includes'] : array(); //$criteria = isset($params['criteria']) ? $params['criteria'] : array(); $columns = ['shipping_methods.*', 'shipping_methods_descriptions.name']; $sort_column = "sort_order"; //basic query $query = ShippingMethod::leftJoin("shipping_methods_descriptions", function ($join) use($language_id) { $join->on('shipping_methods.id', '=', 'shipping_methods_descriptions.shipping_method_id'); $join->where('shipping_methods_descriptions.language_id', '=', $language_id); })->orderBy($sort_column, $sort_direction); //pagination if (isset($page_index) || isset($page_size)) { Paginator::setCurrentPage($page_index); $items = $query->select($columns)->paginate($page_size); } else { $items = $query->select($columns)->get(); } return $items; }
public function test_getById() { $items = ShippingMethod::leftJoin("shipping_methods_descriptions", function ($q) { $q->where('language_id', '=', '1'); })->get(['shipping_methods.*', 'shipping_methods_descriptions.name']); $items = $this->service->getAll(); dd($items); //$items=$this->service->getAll(['includes'=>'descriptions', 'criteria'=>[['column'=>'descriptions.language_id','value'=>1]]]); //dd(json_encode($items->toArray(),JSON_PRETTY_PRINT)); }