/** * Register the service provider. * * @return void */ public function register() { $this->app->singleton('todoform', function ($app) { $form = new TodoFormBuilder($app['html'], $app['url'], $app['session.store']->getToken()); return $form->setSessionStore($app['session.store']); }); $this->app->singleton('todofilterform', function ($app) { $form = new TodoFilterFormBuilder($app['html'], $app['url'], $app['session.store']->getToken()); return $form->setSessionStore($app['session.store']); }); $this->app->alias('todoform', TodoFormBuilder::class); $this->app->alias('todofilterform', TodoFilterFormBuilder::class); }
public static function getFiltered($filter = array()) { $orderBy = TodoFilterFormBuilder::getOrderByList(); $res = self::join('todo_status', 'todo.todo_status_id', '=', 'todo_status.id')->select('todo.*', 'todo_status.name AS status'); if (!empty($filter)) { if (!empty($filter['order_by'])) { $res->orderBy(isset($orderBy[$filter['order_by']]) ? $filter['order_by'] : key($orderBy), !empty($filter['order_dir']) && $filter['order_dir'] === 'asc' ? $filter['order_dir'] : 'desc'); } if (!empty($filter['project_id'])) { $res->where('todo.project_id', '=', (int) $filter['project_id']); } if (!empty($filter['todo_status_id'])) { $res->where('todo.todo_status_id', '=', (int) $filter['todo_status_id']); } } return $res->get(); }