Blame view
app/Http/Controllers/MainController.php
9.4 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; |
a9dfa8c95 Обновление на 7 м... |
14 |
use App\Classes\StatusUser; |
02a1ed535 Первый коммит Rek... |
15 16 17 |
class MainController extends Controller { |
1d1c16604 Фрондэнд - главна... |
18 |
// Главная страница публичной части |
02a1ed535 Первый коммит Rek... |
19 |
public function index() { |
5b68533bb Работа над проект... |
20 21 22 23 24 25 26 27 28 29 30 31 |
$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 Обновление проект... |
32 33 34 35 36 37 38 39 40 |
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 Работа над проект... |
41 42 43 44 45 46 47 48 49 50 |
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 Обновление проект... |
51 |
if (($request->has('job')) && ($request->get('job') > 0)) { |
5b68533bb Работа над проект... |
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
$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 Создание основных... |
70 |
public function list_vacancies(Category $categories, Request $request) { |
a9dfa8c95 Обновление на 7 м... |
71 72 73 74 |
if (isset(Auth()->user()->id)) $uid = Auth()->user()->id; else $uid = 0; |
d152a3a68 Создание основных... |
75 76 77 78 79 80 |
$Query = Ad_employer::with('jobs')-> with('cat')-> with('employer')-> whereHas('jobs_code', function ($query) use ($request) { if ($request->ajax()) { |
a9dfa8c95 Обновление на 7 м... |
81 |
if (null !== ($request->get('job')) && ($request->get('job') !== 0)) { |
d152a3a68 Создание основных... |
82 83 84 85 86 |
$query->where('job_title_id', $request->get('job')); } } }) ->select('ad_employers.*'); |
a9dfa8c95 Обновление на 7 м... |
87 |
|
d152a3a68 Создание основных... |
88 89 90 |
if ($categories->id > 0) { $Query = $Query->where('category_id', '=', $categories->id); $Name_categori = Category::query()->where('id', '=', $categories->id)->get(); |
5b68533bb Работа над проект... |
91 |
} |
a9dfa8c95 Обновление на 7 м... |
92 93 94 95 96 97 98 99 100 101 102 |
if ($request->get('sort')) { $sort = $request->get('sort'); switch ($sort) { case 'name_up': $Query = $Query->orderBy('name')->orderBy('id'); break; case 'name_down': $Query = $Query->orderByDesc('name')->orderby('id'); break; case 'created_at_up': $Query = $Query->OrderBy('created_at')->orderBy('id'); break; case 'created_at_down': $Query = $Query->orderByDesc('created_at')->orderBy('id'); break; case 'default': $Query = $Query->orderBy('id')->orderby('updated_at'); break; default: $Query = $Query->orderBy('id')->orderby('updated_at'); break; } } |
d152a3a68 Создание основных... |
103 |
$Job_title = Job_title::query()->OrderBy('name')->get(); |
5b68533bb Работа над проект... |
104 |
|
d152a3a68 Создание основных... |
105 |
$Query_count = $Query->count(); |
5b68533bb Работа над проект... |
106 |
|
d152a3a68 Создание основных... |
107 108 109 |
$Query = $Query->OrderBy('updated_at')->paginate(3); $Reclama = reclame::query()->limit(3)->get(); |
5b68533bb Работа над проект... |
110 |
|
d152a3a68 Создание основных... |
111 112 113 |
if ($request->ajax()) { |
a9dfa8c95 Обновление на 7 м... |
114 115 116 117 118 119 |
return view('ajax.list_vacancies', compact('Query', 'Query_count', 'Name_categori', 'Reclama', 'categories', 'uid')); |
d152a3a68 Создание основных... |
120 121 122 123 124 125 126 |
} else { //Вернуть все return view('list_vacancies', compact('Query', 'Query_count', 'Reclama', 'Name_categori', 'categories', |
a9dfa8c95 Обновление на 7 м... |
127 128 |
'Job_title', 'uid')); |
5b68533bb Работа над проект... |
129 |
} |
d152a3a68 Создание основных... |
130 |
} |
5b68533bb Работа над проект... |
131 |
|
d152a3a68 Создание основных... |
132 133 134 |
// Образование public function education(Request $request) { $educations = Education::query(); |
a9dfa8c95 Обновление на 7 м... |
135 136 |
if (($request->has('search')) && (!empty($request->get('search')))) { $search = trim($request->get('search')); |
d152a3a68 Создание основных... |
137 138 |
$educations = $educations->where('name', 'LIKE', "%$search%"); } |
a9dfa8c95 Обновление на 7 м... |
139 140 141 142 143 144 145 146 147 148 149 150 |
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; } } |
d152a3a68 Создание основных... |
151 152 |
$count_edu = $educations->count(); $educations = $educations->paginate(6); |
a9dfa8c95 Обновление на 7 м... |
153 154 155 156 157 |
if ($request->ajax()) { return view('ajax.education', compact('educations')); } else { return view('education', compact('educations', 'count_edu')); } |
d152a3a68 Создание основных... |
158 |
} |
5b68533bb Работа над проект... |
159 |
|
d152a3a68 Создание основных... |
160 161 162 |
// Контакты public function contacts() { return view('contacts'); |
02a1ed535 Первый коммит Rek... |
163 |
} |
a13ce8670 Обновление проект... |
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
// Вход в личный кабинет 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 Коммит на понедел... |
189 |
return redirect()->route('index')->with('Error', "Email или пароль невалидный"); |
a13ce8670 Обновление проект... |
190 191 192 193 194 195 196 |
} else { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials, $request->has('remember'))) { if (is_null(Auth::user()->email_verified_at)) { Auth::logout(); |
e3c7b0ffb Коммит на понедел... |
197 |
return json_encode(Array("ERROR" => "Адрес почты не подтвержден")); |
a13ce8670 Обновление проект... |
198 199 200 |
} if (Auth::user()->is_worker) { |
e3c7b0ffb Коммит на понедел... |
201 |
return json_encode(Array("REDIRECT" => redirect()->route('worker.cabinet')->getTargetUrl())); |
a13ce8670 Обновление проект... |
202 |
} else { |
e3c7b0ffb Коммит на понедел... |
203 |
return json_encode(Array("REDIRECT" => redirect()->route('employer.cabinet')->getTargetUrl())); |
a13ce8670 Обновление проект... |
204 |
} |
e3c7b0ffb Коммит на понедел... |
205 |
return json_encode(Array("SUCCESS" => "Вы успешно вошли в личный кабинет")); |
a13ce8670 Обновление проект... |
206 207 208 |
//->route('index') //->with('success', 'Вы вошли в личный кабинет.'); } else { |
e3c7b0ffb Коммит на понедел... |
209 |
return json_encode(Array("ERROR" => "Неверный логин или пароль!")); |
a13ce8670 Обновление проект... |
210 211 212 |
} } } |
02a1ed535 Первый коммит Rek... |
213 |
} |