Blame view
app/Http/Controllers/MainController.php
7.24 KB
02a1ed535 Первый коммит Rek... |
1 2 3 |
<?php namespace App\Http\Controllers; |
d152a3a68 Создание основных... |
4 |
use App\Models\Ad_employer; |
5b68533bb Работа над проект... |
5 |
use App\Models\Category; |
d152a3a68 Создание основных... |
6 |
use App\Models\Education; |
5b68533bb Работа над проект... |
7 8 9 10 |
use App\Models\Employer; use App\Models\Job_title; use App\Models\News; use App\Models\reclame; |
02a1ed535 Первый коммит Rek... |
11 |
use Illuminate\Http\Request; |
a13ce8670 Обновление проект... |
12 13 |
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Validator; |
02a1ed535 Первый коммит Rek... |
14 15 16 |
class MainController extends Controller { |
1d1c16604 Фрондэнд - главна... |
17 |
// Главная страница публичной части |
02a1ed535 Первый коммит Rek... |
18 |
public function index() { |
5b68533bb Работа над проект... |
19 20 21 22 23 24 25 26 27 28 29 30 |
$news = News::query()->orderBy('id')->limit(6)->get(); $categories = Category::query()->selectRaw('count(ad_employers.id) as cnt, categories.*') ->join('ad_employers', 'ad_employers.category_id', '=', 'categories.id') ->OrderByDesc('created_at') ->GroupBy('categories.id') ->get(); $employers = Employer::query()->orderBy('id')->limit(20)->get(); return view('index', compact('news', 'categories', 'employers')); } |
a13ce8670 Обновление проект... |
31 32 33 34 35 36 37 38 39 |
public function search_vacancies(Request $request) { if ($request->has('search')) { $search = $request->get('search'); $job_titles = Job_title::query()->where('name', 'LIKE', "%$search%")->first(); if (isset($job_titles->id)) if ($job_titles->id > 0) return redirect()->route('vacancies', ['job' => $job_titles->id]); } } |
5b68533bb Работа над проект... |
40 41 42 43 44 45 46 47 48 49 |
public function vacancies(Request $request) { //должности $Job_title = Job_title::query()->orderBy('name')->get(); $categories = Category::query()->selectRaw('count(ad_employers.id) as cnt, categories.*') ->selectRaw('min(ad_employers.salary) as min_salary, max(ad_employers.salary) as max_salary') ->join('ad_employers', 'ad_employers.category_id', '=', 'categories.id') ->join('ad_jobs', 'ad_jobs.ad_employer_id', '=', 'ad_employers.id'); //категории и вакансии |
a13ce8670 Обновление проект... |
50 |
if (($request->has('job')) && ($request->get('job') > 0)) { |
5b68533bb Работа над проект... |
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
$categories = $categories->Where('job_title_id', '=', $request->get('job')) ->OrderByDesc('created_at') ->GroupBy('categories.id') ->get(); } else { $categories = $categories->OrderByDesc('created_at') ->GroupBy('categories.id') ->get(); } if ($request->ajax()) { return view('ajax.vacancies', compact('categories')); } else { return view('vacancies', compact('Job_title', 'categories')); } } //Вакансии категория детальная |
d152a3a68 Создание основных... |
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
public function list_vacancies(Category $categories, Request $request) { $Query = Ad_employer::with('jobs')-> with('cat')-> with('employer')-> whereHas('jobs_code', function ($query) use ($request) { if ($request->ajax()) { if (null !== ($request->get('job'))) { $query->where('job_title_id', $request->get('job')); } } }) ->select('ad_employers.*'); if ($categories->id > 0) { $Query = $Query->where('category_id', '=', $categories->id); $Name_categori = Category::query()->where('id', '=', $categories->id)->get(); |
5b68533bb Работа над проект... |
86 |
} |
d152a3a68 Создание основных... |
87 |
$Job_title = Job_title::query()->OrderBy('name')->get(); |
5b68533bb Работа над проект... |
88 |
|
d152a3a68 Создание основных... |
89 |
$Query_count = $Query->count(); |
5b68533bb Работа над проект... |
90 |
|
d152a3a68 Создание основных... |
91 92 93 |
$Query = $Query->OrderBy('updated_at')->paginate(3); $Reclama = reclame::query()->limit(3)->get(); |
5b68533bb Работа над проект... |
94 |
|
d152a3a68 Создание основных... |
95 96 97 98 99 100 101 102 103 104 105 106 |
if ($request->ajax()) { return view('ajax.list_vacancies', compact('Query', 'Query_count', 'Name_categori', 'Reclama', 'categories')); } else { //Вернуть все return view('list_vacancies', compact('Query', 'Query_count', 'Reclama', 'Name_categori', 'categories', 'Job_title')); |
5b68533bb Работа над проект... |
107 |
} |
d152a3a68 Создание основных... |
108 |
} |
5b68533bb Работа над проект... |
109 |
|
d152a3a68 Создание основных... |
110 111 112 113 114 115 116 117 118 119 120 |
// Образование public function education(Request $request) { $educations = Education::query(); if ($request->has('search')) { $search = trim($request->has('search')); $educations = $educations->where('name', 'LIKE', "%$search%"); } $count_edu = $educations->count(); $educations = $educations->paginate(6); return view('education', compact('educations', 'count_edu')); } |
5b68533bb Работа над проект... |
121 |
|
d152a3a68 Создание основных... |
122 123 124 |
// Контакты public function contacts() { return view('contacts'); |
02a1ed535 Первый коммит Rek... |
125 |
} |
a13ce8670 Обновление проект... |
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
// Вход в личный кабинет public function input_login(Request $request) { $rules = [ 'email' => 'required|string|email', 'password' => 'required|string', ]; $messages = [ 'required' => 'Укажите обязательное поле «:attribute»', 'email' => 'Введите корректный email', 'min' => [ 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' ], 'max' => [ 'string' => 'Поле «:attribute» должно быть не больше :max символов', 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' ], ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { |
e3c7b0ffb Коммит на понедел... |
151 |
return redirect()->route('index')->with('Error', "Email или пароль невалидный"); |
a13ce8670 Обновление проект... |
152 153 154 155 156 157 158 |
} else { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials, $request->has('remember'))) { if (is_null(Auth::user()->email_verified_at)) { Auth::logout(); |
e3c7b0ffb Коммит на понедел... |
159 |
return json_encode(Array("ERROR" => "Адрес почты не подтвержден")); |
a13ce8670 Обновление проект... |
160 161 162 |
} if (Auth::user()->is_worker) { |
e3c7b0ffb Коммит на понедел... |
163 |
return json_encode(Array("REDIRECT" => redirect()->route('worker.cabinet')->getTargetUrl())); |
a13ce8670 Обновление проект... |
164 |
} else { |
e3c7b0ffb Коммит на понедел... |
165 |
return json_encode(Array("REDIRECT" => redirect()->route('employer.cabinet')->getTargetUrl())); |
a13ce8670 Обновление проект... |
166 |
} |
e3c7b0ffb Коммит на понедел... |
167 |
return json_encode(Array("SUCCESS" => "Вы успешно вошли в личный кабинет")); |
a13ce8670 Обновление проект... |
168 169 170 |
//->route('index') //->with('success', 'Вы вошли в личный кабинет.'); } else { |
e3c7b0ffb Коммит на понедел... |
171 |
return json_encode(Array("ERROR" => "Неверный логин или пароль!")); |
a13ce8670 Обновление проект... |
172 173 174 |
} } } |
02a1ed535 Первый коммит Rek... |
175 |
} |