Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inny] Laravel problem z paczką baum
Anaconda
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 11.11.2016

Ostrzeżenie: (0%)
-----


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();



Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
untorched
post
Post #2





Grupa: Zarejestrowani
Postów: 318
Pomógł: 76
Dołączył: 27.12.2011
Skąd: Dąbrowa Górnicza

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 12:53