Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Laravel sumowanie kolekcji
john_doe
post 15.04.2019, 11:17:44
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


Jak w Laravel zsumować dwie kolekcje te same kolekcje obiektów. Np. mam kolekcję parametrów

  1. [
  2. 0=>Parameter{
  3. 'day' => 0
  4. 'rank' => 1
  5. },
  6. 1=>Parameter{
  7. 'day' => 1
  8. 'rank' => 2
  9. },
  10. 2=>Parameter{
  11. 'day' => 2
  12. 'rank' => 3
  13. }
  14. ]
  15. // druga
  16. [
  17. 0=>Parameter{
  18. 'day' => 1
  19. 'rank' => 3
  20. }
  21. ]
  22.  
  23. // wynik
  24.  
  25. {
  26. 'day' => 0
  27. 'rank' => 1
  28. },
  29. {
  30. 'day' => 1
  31. 'rank' => 5
  32. },
  33. {
  34. 'day' => 2
  35. 'rank' => 3
  36. }
  37. ]
  38.  
  39.  


suma ale nie day.


Go to the top of the page
+Quote Post
Pyton_000
post 15.04.2019, 12:22:40
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Może coś takiego:


  1. $collection1->merge($collection2)->groupBy('day')->sum('rank)
Go to the top of the page
+Quote Post
john_doe
post 15.04.2019, 12:40:29
Post #3





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


dzięki Pyton_000 ale nie działa. Zwraca 0.
Go to the top of the page
+Quote Post
Pyton_000
post 15.04.2019, 12:42:10
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


skąd masz te kolekcje?
Go to the top of the page
+Quote Post
john_doe
post 15.04.2019, 12:52:01
Post #5





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


robię coś takiego
  1. $configuration = $this->configurationRepository
  2. ->getBy('race_id', $detail->race->id)
  3. ->sortByDesc('date_from')
  4. ->first();


dostaję kolekcję obiektów Parameter
  1. class Parameter extends Model
  2. {
  3. protected $fillable = [
  4. 'configuration_id', 'day', 'water', 'feed', 'weight', 'downs', 'temperature',
  5. ];
  6.  
  7. }
  8.  

Parametry pod względem pola "day" zawsze lecą od 0
i teraz:
- z zewnątrz dostaję int`a = 7.
- pobieram sobie wszystkie parametery. ( kolekcja 1 )
- pobieram sobie parametry począwszy od dnia 7 ( kolekcja 2 )

Teraz te dwie kolekcje potrzebuję scalić tak aby w 1szym Parameter dla day = 0 zabrać feed z tej drugiej kolekcji ( więc to nawet źle określiłem inicjalnie ) po prostu zastąpienie. Day pozostaje bez zmian = 0, feed zastąpione ( water, weight też )


Ten post edytował john_doe 15.04.2019, 12:54:24
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 Wersja Lo-Fi Aktualny czas: 28.03.2024 - 20:30