/** * Processes the form. * * @param string $mode * @param int $id * @return \Illuminate\Http\RedirectResponse */ protected function processForm($mode, $id = null) { $input = Input::all(); $rules = ['name' => 'required', 'slug' => 'required|unique:roles']; if ($id) { $role = $this->roles->createModel()->find($id); $rules['slug'] .= ",slug,{$role->slug},slug"; $messages = $this->validateRole($input, $rules); if ($messages->isEmpty()) { $role->fill($input)->save(); } } else { $messages = $this->validateRole($input, $rules); if ($messages->isEmpty()) { $role = $this->roles->createModel()->create($input); } } if ($messages->isEmpty()) { return Redirect::route('roles.index')->withSuccess(trans("roles/messages.success.{$mode}")); } return Redirect::back()->withInput()->withErrors($messages); }