adminRepository = $adminRepositoryEloquent; } /** * @param Request $request * * @return mixed * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function handleList(Request $request) { $this->adminRepository->pushCriteria(new AdminCriteria($request)); $this->adminRepository->setPresenter(AdminPresenter::class); return $this->adminRepository->searchAdminsByPage(); } /** * @param $id * * @return \Illuminate\Database\Eloquent\Model */ public function handleProfile($id) { $this->adminRepository->setPresenter(AdminPresenter::class); return $this->adminRepository->searchAdminBy($id); } /** * @param array $data * * @return mixed * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function handleStore($data) { $data['password'] = Hash::make($data['password']); $role_ids = $data['role_ids']; unset($data['role_ids']); $admin = $this->adminRepository->create($data); if (is_array($role_ids)) $admin->syncRoles($role_ids); // if (array_key_exists('role_ids', $data) && is_array($data['role_ids'])) $admin->syncRoles($data['role_ids']); return $admin; } /** * @param array $data * * @return mixed * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function handleUpdate($data) { if (array_key_exists('password', $data)) unset($data['password']); $role_ids = $data['role_ids']; unset($data['role_ids']); $admin = $this->adminRepository->update($data, $data['id']); if (is_array($role_ids)) $admin->syncRoles($role_ids); return $admin; } /** * @param Request $request * * @return mixed * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function handleDelete($id) { return $this->adminRepository->delete($id); } /** * @param Request $request * * @return mixed * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function handleAll(Request $request) { $this->adminRepository->pushCriteria(new AdminCriteria($request)); $this->adminRepository->setPresenter(AdminPresenter::class); return $this->adminRepository->get(); } /** * @param Request $request * * @return mixed * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function handleIds(Request $request) { $this->adminRepository->pushCriteria(new AdminCriteria($request)); return $this->adminRepository->pluck('id'); } /** * 选项 * @param Request $request * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator|\Illuminate\Support\Collection|mixed * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function handleSelectOptions(Request $request) { $this->adminRepository->pushCriteria(new AdminCriteria($request)); return $this->adminRepository->all(['id', 'name', 'username']); } /** * 批量删除 * @param $ids * @return mixed */ public function handleBatchDelete($ids) { return $this->adminRepository->whereIn('id', $ids)->delete(); } }