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');
     }
 }