Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> [inny]Jak połączyć dwie kolekcje po kluczu, Cos jak left join
fumfel20
post 23.09.2018, 16:13:43
Post #21





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 17.09.2015

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


PS: w pierwszym zapytaniu jest cos co powinienem wylaczyc, mianowicie:
left join imaTransactionHistory ith on ith.partNo = ip.ifsCode

Poniewaz to jest stare polaczenie ktore łączyło do tabeli z dumpem z Oracle. Wiec i w tej kolekcji nie bedzie QTY, QTY trzeba przeniesc z kolejnej kolekcji.

  1. (1/1) Error
  2. Cannot use object of type stdClass as array


  1. $first = $th->keyBy('part_no')->all();
  2. $sec = $imaPlan->map(function ($row) use ($first){
  3. $row['qty'] = $first[$row['ifsCode']]['qty'];
  4. });
  5.  
  6. return dd($row);


wywalilem "? null" bbo phpstorm podkreslal jako blad
Go to the top of the page
+Quote Post
rad11
post 23.09.2018, 16:18:20
Post #22





Grupa: Zarejestrowani
Postów: 1 239
Pomógł: 177
Dołączył: 7.10.2012
Skąd: Warszawa

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


Przyjrzyj sie dokladnie mojej odpowiedzi uzyj tej opcji co dodalem w komentarzu. questionmark.gif Powinien byc jesli uzywasz php >= 7 natomiast jezeli mniejszej wersji to musisz zrobic ifa i pozatym nie zwracasz w te funkcji nic

Ten post edytował rad11 23.09.2018, 16:19:20
Go to the top of the page
+Quote Post
fumfel20
post 23.09.2018, 18:30:34
Post #23





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 17.09.2015

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


ok, mam PHP 7.2.* wiec powinno latac. Ide testowac i dam znac

Cytat(rad11 @ 23.09.2018, 16:01:32 ) *
Spróbuj tak:

  1.  
  2. $firstCollection = $collection->keyBy('part_no')->all();
  3.  
  4. $secodCollection = $collection->map(function ($row) use ($firstCollection){
  5.  
  6. $row['qty'] = $firstCollection[$row['ifsCode']]['qty'] questionmark.gif null;
  7.  
  8. // lub $row->qty = $firstCollection[$row->ifsCode]->qty questionmark.gif null
  9.  
  10. return $row;
  11.  
  12. });


Kurde, podkresla mi intelisense:

Go to the top of the page
+Quote Post
rad11
post 23.09.2018, 18:36:42
Post #24





Grupa: Zarejestrowani
Postów: 1 239
Pomógł: 177
Dołączył: 7.10.2012
Skąd: Warszawa

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


Bo tam powinny bycdwa znaki zapytania i return $row...

Ten post edytował rad11 23.09.2018, 18:40:13
Go to the top of the page
+Quote Post
fumfel20
post 23.09.2018, 20:21:36
Post #25





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 17.09.2015

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





:/
Wywala blad: Cannot use object of type stdClass as array

Ten post edytował fumfel20 23.09.2018, 20:22:52
Go to the top of the page
+Quote Post
rad11
post 23.09.2018, 20:49:30
Post #26





Grupa: Zarejestrowani
Postów: 1 239
Pomógł: 177
Dołączył: 7.10.2012
Skąd: Warszawa

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


Napisalem Ci ktory przyklad masz użyć popatrz jeszcze raz dokladnie
Go to the top of the page
+Quote Post
fumfel20
post 24.09.2018, 09:24:58
Post #27





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 17.09.2015

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


Robie cos zle i nie wiem co:


Go to the top of the page
+Quote Post
rad11
post 24.09.2018, 09:40:59
Post #28





Grupa: Zarejestrowani
Postów: 1 239
Pomógł: 177
Dołączył: 7.10.2012
Skąd: Warszawa

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


W use daj $th...
Go to the top of the page
+Quote Post
viking
post 24.09.2018, 09:48:56
Post #29





Grupa: Zarejestrowani
Postów: 5 226
Pomógł: 876
Dołączył: 30.08.2006

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


https://laravel-news.com/laravel-view-models


--------------------
Go to the top of the page
+Quote Post
fumfel20
post 24.09.2018, 10:23:36
Post #30





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 17.09.2015

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


Cytat(rad11 @ 24.09.2018, 09:40:59 ) *
W use daj $th...


EDIT:

wywalilem mojego dumpa i return $row nic mi nie zrwocil. Skrypt zatrzymal sie na moim pozniejszym returnie z komunikatem stop;

EDIT:
zrobilem dump ($imaPlan) i chyba jest ok:


Sprawdze jeszcze czy dobre liczby podstawil ale na koncu dodal tez pole part_no null.
EDIT: Tak testuje to wszystko i mam maly problem. Kolekcja imaProd jak widzisz zawiera joina do niepotrzebnego juz dumpa z kolekcji th, mianowicie "left join imaTransactionHistory ith on ith.partNo = ip.ifsCode". Wiec wywalilem na chwile tego lefta i dalem 0 as qty:
  1. select ip.ifsCode, ip.description, ip.minStock, ip.maxStock, ip.demand, ip.finishedStock, ist.inStock ,ip.cover,
  2. (CASE WHEN ist.inStock is null then 0 else ist.inStock END) as currentStock, ip.autoPlan ,ip.totalAutoPlan, 0 as qty
  3. from imaProdPlan ip
  4. -- left join imaTransactionHistory ith on ith.partNo = ip.ifsCode
  5. left join imaStock ist on ist.partNo = ip.ifsCode
  6. where left(ip.created_at,10) = '$planDate'


Problem polega na tym ze wtedy tego 0 juz nie podmienia mi funkcja map tylko wszedzie jest 0.

EDIT: Wyglada na to ze nic nie dziala. Dalej czyta dane z tabeli w ktorej jest poprzedni DUMP z $th.

Ten post edytował fumfel20 24.09.2018, 12:10:41
Go to the top of the page
+Quote Post

2 Stron V  < 1 2
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: 19.06.2019 - 04:42