filter) { if ($request->filter) { if ($request->filter == 'trashed') { $companies->onlyTrashed(); } else { if ($request->filter != 'all') { $companies->where('status', $request->filter); } } } $companies = $companies->get(); return view('admin::companies.index', [ 'companies' => $companies, 'statuses' => CompanyStatus::cases(), 'filter' => $request->filter ]); } public function edit(Company $company) { return view('admin::companies.edit', [ 'company' => $company, 'companyAgentsRelation' => Agent::where('company_id', $company->id)->get(), 'companyAdminsRelation' => CompanyAdmin::where('company_id', $company->id)->get(), ]); } public function update(Request $request, Company $company) { $validated = $request->validate([ 'name' => 'required', 'email' => "required|unique:companies,email,{$company->id}", 'phone' => "required|unique:companies,phone,{$company->id}", ], [ 'email.unique' => 'Указанная электронная почта уже существует', 'phone.unique' => 'Указанный номер телефона уже существует' ] ); $company->update($request->only('name', 'email', 'phone')); if ($request->token) { $company->bitrixy->token = $request->token; $company->bitrixy->save(); } return to_route('admin.companies.edit', ['company' => $company]); } public function delete(Company $company) { $company->delete(); return back()->withSuccess('Агентство было перемещено в корзину. Все пользователи, прикрепленные к агентству не смогут войти на портал.'); } public function restore(Company $company) { $company->restore(); return to_route('admin.companies.edit', ['company' => $company])->withSuccess('Агентство "' . $company->name . '" было восстановлено из корзины'); } public function deleteAdmin(CompanyAdmin $companyAdmin) { $companyAdmin->delete(); return back(); } public function deleteAgent(Agent $agent) { $agent->delete(); return back(); } }