toDbo(); } } return $tab; } /** * @param $page int * @param $perPage int * @param $column string * @param $order string * @param $query string * @return LuDbo[] */ public static function search($page, $perPage, $column, $order, $query = null) { if (is_null($query)) $data = static::getModel(); else $data = static::search_($page, $perPage, $column, $order, $query); $data = $data->orderBy($column, $order)->take($perPage)->offset($page * $perPage)->get(); $tab = self::arrayToDbo($data); return $tab; } /** * @param $id int * @return LuModel */ protected static function _getModelById($id) { return static::getModel()->where('id', '=', $id)->first(); } /** * @param $id int * @return LuDbo|null */ public static function getById($id) { $data = self::_getModelById($id); if (is_null($data)) return null; return $data->toDbo(); } /** * @param $id int */ public static function deleteById($id) { $data = self::_getModelById($id); if (is_null($data)) return; $data->delete(); } /** * @param $data LuDbo * @return int */ public static function addId($data) { $data = static::getModel()->fromDBO($data); $data->save(); return $data->id; } /** * @param $data LuDbo */ public static function add($data) { $data = static::getModel()->fromDBO($data); $data->save(); } /** * @param $id int * @param $data LuDbo * @return LuDbo|null */ public static function editById($id, $data) { return static::getModel()->fromDBO($data, self::_getModelById($id))->save(); } /** * @param $predicates array * @param $orders array * @param int $page * @param int $perPage * @return array */ public static function getMultiple($predicates, $orders, $page = 0, $perPage = PHP_INT_MAX) { $model = static::getModel(); foreach($predicates as $predicate) { $model = $model->where($predicate[0], $predicate[1], $predicate[2]); } $count = $model->count(); foreach($orders as $order) { $model = $model->orderBy($order[0], $order[1]); } $data = $model->take($perPage)->offset($page * $perPage)->get(); $dbo = self::arrayToDbo($data); return new LuMultipleDbo($count, $dbo); } /** * @return LuModel */ private static function getModel() { return null; } }