Ad_EmployersController.php 3.69 KB
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\Ad_employer;
use App\Models\Employer;
use App\Models\Job_title;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;

class Ad_EmployersController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        $title = 'Админка - Вакансии работодателей';
        if ($request->ajax()) {
           $params = $request->all();
           foreach ($params['data'] as $item) {
               $emp = Ad_employer::find($item);
               $emp->updated_at = Carbon::now();
               $emp->save();
           }
        }

        $ad_employers = Ad_employer::with('employer')->with('jobs')
            ->where('is_remove', '0')->OrderBy('updated_at', 'desc')->paginate(15);

        if ($request->ajax()) {
            return view('admin.ad_employers.index_ajax', compact('ad_employers', 'params'));
        } else {
            return view('admin.ad_employers.index', compact('ad_employers', 'title'));
        }
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\Ad_employer  $ad_employer
     * @return \Illuminate\Http\Response
     */
    public function show(Ad_employer $ad_employer)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\Ad_employer  $ad_employer
     * @return \Illuminate\Http\Response
     */
    public function edit(Ad_employer $ad_employer)
    {
        $sel = Array();
        $job_titles = Job_title::active()->get();

        foreach ($ad_employer->jobs as $j) {
            $sel[] = $j->id;
        }

        return view('admin.ad_employers.edit', compact('ad_employer', 'job_titles', 'sel'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\Ad_employer  $ad_employer
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Ad_employer $ad_employer)
    {
        $params = $request->all();
        unset($params->position_work);
        $rules = [
            'name' => 'required|min:3',
        ];
        $messages = [
            'required' => 'Укажите обязательное поле',
        ];
        $validator = Validator::make($params, $rules, $messages);

        if ($validator->fails()) {
            return redirect()->route('admin.edit-ad-employers', ['ad_employer' => $ad_employer->id])
                ->withErrors($validator);
        } else {
            $ad_employer->update($params);
            $ad_employer->jobs()->sync($request->position_work);

            return redirect()->route('admin.ad-employers')
                ->with('success', 'Данные были успешно сохранены');
        }
        return redirect()->route('admin.ad-employers');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Models\Ad_employer  $ad_employer
     * @return \Illuminate\Http\Response
     */
    public function destroy(Ad_employer $ad_employer)
    {
        //
    }
}