Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inny] Laravel problem z paczką baum
Forum PHP.pl > Forum > PHP > Frameworki
Anaconda
Korzystam z tej paczki https://github.com/etrepat/baum wszystko działa dobrze poza jedna rzeczą oprócz standardowych pól w bazie jak parent_id, depth itp mam pole o nazwie name. Po edycji pola name patent_id ustawia się na null w wyniku czego staje się rootem. Przy edycji muszę na nowo ustawiać patent_id by wszystko zostało tak jak jest. Czy takie działanie jest poprawne?

  1. $editcategory=\App\Category::find($parent);
  2. $parentCat=$editcategory->parent_id;
  3.  
  4. $slug=\App\Slugs::where('category_id','=',$editcategory->id)->first();
  5.  
  6. //jezeli z jakiegos dziwnego przypadku nie ma slugu dla modyfikowanej kategorii
  7. if(!isset($slug))
  8. $slug=\App\Slugs::create(['category_id'=>$editcategory->id]);
  9.  
  10. foreach(\App\Language::getLanguage() as $lang)
  11. {
  12.  
  13. $editcategory->translateOrNew($lang->slug)->name = $data['name'.$lang->slug];
  14. $slug->translateOrNew($lang->slug)->slug =null;
  15. $slug->translateOrNew($lang->slug)->title = $data['name'.$lang->slug];
  16.  
  17. }
  18.  
  19. $editcategory->save();
  20.  
  21. //moim zdaniem powinno się obyć bez tego
  22. $editcategory->parent_id=$parentCat;
  23.  
  24. $editcategory->save();
  25.  
  26. $slug->save();



untorched
Wydaje mi się, że ten fragment
  1. foreach(\App\Language::getLanguage() as $lang)
  2. {
  3. $editcategory->translateOrNew($lang->slug)->name = $data['name'.$lang->slug];
  4. $slug->translateOrNew($lang->slug)->slug =null;
  5. $slug->translateOrNew($lang->slug)->title = $data['name'.$lang->slug];
  6. }
  7.  
  8. $editcategory->save();


powinien wyglądać mniej więcej tak:
  1. foreach(\App\Language::getLanguage() as $lang)
  2. {
  3. $translate = $editcategory->translateOrNew($lang->slug);
  4. $translate->name = $data['name'.$lang->slug];
  5. $translate->save();
  6.  
  7. $slug->translateOrNew($lang->slug)->slug =null;
  8. $slug->translateOrNew($lang->slug)->title = $data['name'.$lang->slug];
  9. }
  10.  
  11. //$editcategory->save(); // bez tego save?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.