public function postEdit($id) { $input = Input::only(['name', 'description']); $validator = Validator::make($input, ['name' => 'Required']); if ($validator->fails()) { $e = new InvalidArgumentHttpException(); $e->setMessage($validator->errors()->first()); throw $e; } XeDB::beginTransaction(); try { $group = $this->groups->find($id); $group->fill($input); $this->groups->update($group); } catch (Exception $e) { XeDB::rollBack(); throw $e; } XeDB::commit(); return redirect()->route('manage.group.index')->with('alert', ['type' => 'success', 'message' => '수정되었습니다.']); }
public function index(Request $request) { // todo: validate inputs!! $wheres = []; $searches = []; // resolve group if ($group = $request->get('group')) { array_set($wheres, 'groups', $group); } // resolve status if ($status = $request->get('status')) { array_set($wheres, 'status', $status); } // resolve search keyword // keyfield가 지정되지 않을 경우 email, customId에서 입력된 keyword를 검색함 $field = $request->get('keyfield', 'email,displayName'); $field = $field === '' ? 'email,displayName' : $field; if ($query = $request->get('keyword')) { $searches = [$field => $query]; } $wheres = count($wheres) === 0 ? null : $wheres; $searches = count($searches) === 0 ? null : $searches; // get members if ($searches) { $members = $this->members->search($searches, $wheres, ['groups', 'accounts']); } elseif ($wheres) { $members = $this->members->fetch($wheres, ['groups', 'accounts']); } else { $members = $this->members->paginate(['groups', 'accounts']); } // get all groups $groups = $this->groups->all(); $selectedGroup = null; if ($group !== null) { $selectedGroup = $this->groups->find($group); } return Presenter::make('member.settings.member.index', compact('members', 'groups', 'selectedGroup')); }