/** * Get all plans in which an admin was assigned * * @param $sortBy * @param $order * @param null $from * @return array */ public function getAllAssigned($userId, $sortBy, $order, $from = null) { $query = $this->basePlansUsersQuery(); $query->join('testers AS t', 'p.id', '=', 't.plan_id')->leftJoin('tickets_responses AS tr', function ($join) use($userId) { $join->on('p.id', '=', 'tr.plan_id')->where('tr.tester_id', '=', $userId); })->select('p.*', 'u.first_name', 'u.last_name', 't.browsers')->where('t.user_id', '=', $userId)->orderBy($sortBy, $order)->groupBy('p.id'); if ($from == 'dashboard') { $query = $query->take(config('testplanner.tables.pagination.dashboard'))->get(); } else { $query = $query->paginate(config('testplanner.tables.pagination.lists')); } // Prepare columns to be shown $table = $this->tablesApi->prepare('order', ['description', 'first_name', 'last_name', 'created_at', 'updated_at', 'respond'], 'PlansController@index'); $results = ['plans' => $query, 'columns' => $table['columns'], 'columnsLink' => $table['columns_link']]; return $results; }