public function store(DepartmentRequest $request) { $allWorker = DB::table('department_worker')->get(['user_id']); $duplicateWorker = []; $leader = $request->department_leader; $departmentUsers = $request->department_worker; array_push($departmentUsers, $request->department_leader); $departmentUsers = array_unique($departmentUsers); foreach ($allWorker as $aw) { if (in_array($aw->user_id, $request->department_worker)) { array_push($duplicateWorker, $aw->user_id); } } if (!empty($duplicateWorker)) { $users = User::whereIn('id', $duplicateWorker)->select(DB::raw('CONCAT(first_name," ",last_name) as full_name'))->get(); $usersString = ''; foreach ($users as $u) { $usersString .= $u->full_name . ','; } return response()->json(['messages' => $usersString . ' Kişileri Başka Bir Departmana Bağlıdır.'], 422); } else { foreach ($departmentUsers as $key => $value) { $value == $leader ? $departmentUsers[$key] = ['user_id' => $value, 'is_senior' => 1] : ($departmentUsers[$key] = ['user_id' => $value, 'is_senior' => 0]); } $this->permissionSection(function () use($request, $departmentUsers) { DB::transaction(function () use($request, $departmentUsers) { $department = new Department(); $department->slug = $request->slug_name; $department->name = $request->department_name; $department->save(); $department->worker()->sync($departmentUsers); }); }, 'wts.department.create'); return response()->json($this->storeResponseMessage); } }