Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak to dobrze zapisać (DRY)
Forum PHP.pl > Forum > PHP
mimol
  1. $formData= $form->getData();
  2.  
  3. if(isset($formData['status'])) {
  4. $status = $form['status'];
  5. $status = array_shift($status);
  6. $formData['status'] = $status;
  7.  
  8. }
  9. if(isset($formData['user'])) {
  10. $user = $form['user'];
  11. $user = array_shift($user);
  12. $formData['user'] = $user;
  13. }
  14. $form->setData($formData);


Oczywiście może się zdarzyć, że formData['user'] jest nullem
tablica formData ma jeszcze inne pola (np name)
Mam nadzieje, że kod jest zrozumiały. Jak go można lepiej zapisać bez powtarzania się?
//nie chciałbym tworzyć przy tym żadnych dodatkowych klas
Posio
Nie wiem czy dobrze i czy o to Ci chodziło ale :

  1. $formData = $form->getData();
  2. foreach($formData as $key => $value) {
  3. $i = array_shift($value);
  4. $formData[$key] = $i;
  5. }
  6. $form->setData($formData);


Pisze z telefonu smile.gif
Helid

  1. $fields = array('status', 'user', 'name')
  2.  
  3. $formData= $form->getData();
  4.  
  5. foreach($fields as $field)
  6. {
  7. if(isset($formData[$field])) {
  8. $status = $form[$field];
  9. $status = array_shift($status);
  10. $formData[$field] = $status;
  11.  
  12. }
  13. }
  14. $form->setData($formData);
mimol
Nie za jasono się wyraziłem
tablica formData ma jeszcze inne pola (np name) (Ich nie chce dodykac)

@Posio
'tablica formData ma jeszcze inne pola (np name)' więc twoje rozwiązanie odpada
@Helid o to mi chodziło
Posio
Cytat
tablica formData ma jeszcze inne pola (np name)


Myślałem że chodzi Ci właśnie żeby "przelecieć" wszystkie smile.gif
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.