コード例 #1
0
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id)
 {
     $navigation = Nav::find($id);
     if (empty($navigation)) {
         return Redirect::to('admin/navigation')->with('success', Lang::get('admin.navigation_notfind'));
     }
     $rules = array();
     $navigation_name_locales = array();
     foreach (Input::except('_token') as $k => $v) {
         if (strpos($k, 'navigation_title_') !== false) {
             $rules[$k] = Config::get('validator.admin.navigation_title.title');
             $navigation_name_locales[] = mb_substr($k, strlen('navigation_title_'), strlen($k) - strpos($k, 'navigation_title_'));
         }
     }
     $rules = array_merge($rules, Config::get('validator.admin.navigation'));
     //return var_dump($rules);
     // Validate the inputs
     $validator = Validator::make(Input::all(), $rules);
     if ($validator->passes()) {
         //Update translations
         foreach ($navigation_name_locales as $locale) {
             if (!I18n::find($navigation->i18n_title)->updateText($locale, Input::get('navigation_title_' . $locale))) {
                 return Redirect::to('admin/navigation')->with('error', Lang::get('admin.navigation_update_error'));
             }
         }
         /*           
         			if (Input::has('parent_id')) {
         	$navigation->parent_id = Input::get('parent_id');
         } else {
         	$navigation->parent_id = 0;
         }
         */
         if (Input::has('url_external')) {
             //create a link and put the id in the navigable_id :)
             $nav_link = NavLink::find($navigation->navigable_id);
             $nav_link->url = Input::get('url_external');
             $nav_link->save();
         }
         if (Input::has('model_resource_id')) {
             $result_explode = explode('|', Input::get('model_resource_id'));
             $navigation->navigable_id = $result_explode[1];
             $navigation->navigable_type = $result_explode[0];
         }
         if (Input::has('order')) {
             $navigation->order = Input::get('order');
         } else {
             $navigation->order = Nav::max() + 1;
         }
         // Was the blog post created?
         if ($navigation->save()) {
             //track user
             parent::track('update', 'Navigation', $navigation->id);
             Cache::forget('DB_Nav');
             // Redirect to the new blog post menu
             return Redirect::to('admin/navigation')->with('success', 'Le menu à bien été modifié !');
         }
         // Redirect to the blog post edit menu
         return Redirect::to('admin/navigation/' . $id . '/edit')->with('error', 'Le menu n\'a pas pu être modifiée...');
     }
     // Form validation failed
     return Redirect::to('admin/navigation/' . $id . '/edit')->withInput()->withErrors($validator);
 }