/** * [getData - get all strippenkaart data] * @return [json] [DT cmpatible object] */ public function getData($model = null) { $Model = $this->modelName; $num_skip = 0; $num_items = 10; $recordsTotal = 0; $recordsFiltered = 0; // check get vars if (isset($_GET['start'])) { $num_skip = (int) $_GET['start']; } if (isset($_GET['length'])) { $num_items = (int) $_GET['length']; } if (isset($_GET['search'])) { $search_value = $_GET['search']['value']; } $all_strippenkaarten = Strippenkaart::orderBy('id', 'DESC'); if ($model !== null) { $all_strippenkaarten->where('strippenkaarten.company_id', '=', (int) $model->id); if (!empty($search_value)) { $all_strippenkaarten->whereRaw("(strippenkaarten.hours LIKE '%" . $search_value . "%')"); } } else { if (!empty($search_value)) { $all_strippenkaarten->join('companies', 'projects.company_id', '=', 'companies.id')->whereRaw("(strippenkaarten.hours LIKE '%" . $search_value . "%' OR companies.bedrijfsnaam LIKE '%" . $search_value . "%')"); } } $recordsTotal = $all_strippenkaarten->count(); $recordsFiltered = $recordsTotal; if ($num_skip > 0) { $all_strippenkaarten->skip($num_skip); } $all_strippenkaarten = $all_strippenkaarten->take($num_items)->get(); $data = []; foreach ($all_strippenkaarten as $strippenkaart) { // load relations $load_curr_company = $strippenkaart->company; $curr_strippenkaart = $strippenkaart; $curr_company = $strippenkaart->company !== NULL ? (object) ['id' => $strippenkaart->company_id, 'bedrijfsnaam' => utf8_encode($strippenkaart->company->bedrijfsnaam)] : (object) null; $data[] = (object) ['DT_RowId' => 'row_' . $strippenkaart->id, 'strippenkaarten' => $curr_strippenkaart, 'companies' => $curr_company, 'minutes_left' => $strippenkaart->getMinutesLeftAttribute()]; } $ret = ['recordsTotal' => $recordsTotal, 'recordsFiltered' => $recordsFiltered, 'data' => $data, 'companies' => $this->getAllCompanies()]; return Response::json($ret); }