public function update($id) { $rules = array('name' => 'required', 'description' => 'required', 'title' => 'required', 'route' => 'required', 'roles' => 'required', 'order' => 'required|numeric', 'menu_image' => 'mimes:jpeg,bmp,png'); $validator = Validator::make(Input::all(), $rules); // process the login if ($validator->fails()) { return Redirect::to('admin/menu/' . $id . '/edit')->withErrors($validator)->withInput(); } else { // store $filename = ""; if (Input::hasFile('menu_image')) { if (Input::file('menu_image')->isValid()) { Input::file('menu_image')->move(MenuController::imagePath()); $filename = Input::file('menu_image')->getClientOriginalName(); } } $menu = Menu::find($id); $menu->name = Input::get('name'); $menu->description = Input::get('description'); if ($filename !== "") { $menu->image = MenuController::imagePath() . $filename; } $menu->title = Input::get('title'); $menu->route = Input::get('route'); $menu->order = Input::get('order'); $menu->save(); foreach (Role::all() as $role) { $menu->roles()->detach($role->id); } foreach (Input::get('roles') as $roleId) { $found = false; foreach ($menu->roles()->getResults() as $roleMenu) { if ($roleMenu->id === $roleId) { $found = true; } } if (!$found) { $menu->roles()->attach($roleId); } } // redirect Session::flash('message', 'Successfully updated menu!'); return Redirect::to('admin/menu'); } }