EducationController.php
2.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
namespace App\Http\Controllers;
use App\Models\Education;
use App\Models\ProgramEducation;
use Illuminate\Http\Request;
class EducationController extends Controller
{
// Образование
public function index(Request $request) {
$educations = Education::query()->active();
if (($request->has('search')) && (!empty($request->get('search')))) {
$search = trim($request->get('search'));
$educations = $educations->where('name', 'LIKE', "%$search%");
}
if ($request->get('sort')) {
$sort = $request->get('sort');
switch ($sort) {
case 'name_up': $educations = $educations->orderBy('name')->orderBy('id'); break;
case 'name_down': $educations = $educations->orderByDesc('name')->orderby('id'); break;
case 'created_at_up': $educations = $educations->OrderBy('created_at')->orderBy('id'); break;
case 'created_at_down': $educations = $educations->orderByDesc('created_at')->orderBy('id'); break;
case 'default': $educations = $educations->orderBy('id')->orderby('updated_at'); break;
default: $educations = $educations->orderBy('id')->orderby('updated_at'); break;
}
} else {
$educations->orderBy('name');
}
$count_edu = $educations->count();
$educations = $educations->paginate(6);
if ($request->ajax()) {
return view('ajax.education', compact('educations'));
} else {
return view('education.index', compact('educations', 'count_edu'));
}
}
public function show(Education $education){
$education_programs = ProgramEducation::query()
->where('education_id', '=', $education->id)
->get()
;
// Группировка коллекции по полю 'level'
$levels_education_programs = $education_programs->groupBy('level')->map(function ($items, $key) {
return $items->map(function ($item) {
return $item->toArray();
})->toArray();
})->toArray();
//dd($levels_education_programs);
return view('education.show', compact('education', 'levels_education_programs'));
}
}