Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pobranie danych bez pętli foreach.
Forum PHP.pl > Forum > Przedszkole
Generic
Pracuję nad koszykiem z zakupami, który oparty jest o jedno z repozytoriów gitchuba - a dokładniej: https://github.com/darryldecode/laravelshoppingcart

W dokumentacji autor podał przykład w którym wykorzystuje pętle do pobrania danych obiektu:
  1. // To get all applied conditions on a cart, use below:
  2. $cartConditions = Cart::getConditions();
  3.  
  4. foreach($cartConditions as $condition)
  5. {
  6. $condition->getName(); // the name of the condition
  7. }

Zależy mi, aby uzyskać wartość parametru getName() bez użycia pętli. Zbliżony efekt otrzymałem kiedy zwróciłem po prostu Cart::getConditions(), ale wraz z nazwą zwracane są klamry, a potrzebuje tylko samej nazwy.
  1. {"Poczta Express":{}}

Użyłem print_r, aby sprawdzić z czego składa się obiekt i uzyskałem następujące dane:
  1. Darryldecode\Cart\CartConditionCollection Object ( [items:protected] => Array ( [Poczta Express] => Darryldecode\Cart\CartCondition Object ( [args:Darryldecode\Cart\CartCondition:private] => Array ( [name] => Poczta Express [type] => shipping [target] => total [value] => 16 [order] => 1 ) [parsedRawValue:Darryldecode\Cart\CartCondition:private] => 16 ) ) ) 1

Czy mógłby mi ktoś podpowiedzieć jak dostać się do wartości name?
viking
Jest to standardowa kolekcja eloquent. Możesz użyć np first ale rozumiesz że stracisz dane?
Generic
Nie szkodzi ponieważ służy to wyłącznie wyświetleniu nazwy w tytule.

Użyłem metody first, która zwróciła mi pierwszą kolekcje jednak nadal mam problem z pobraniem konkretnej wartości.
  1. print_r(Cart::getConditionsByType('shipping')->first())
  2.  
  3. // Rezultat
  4. Darryldecode\Cart\CartCondition Object ( [args:Darryldecode\Cart\CartCondition:private] => Array ( [name] => Poczta Express [type] => shipping [target] => total [value] => 16 [order] => 1 ) [parsedRawValue:Darryldecode\Cart\CartCondition:private] => 16 ) 1

Kiedy próbuję wyciągnąć konkretną wartość otrzymuję:
  1. Cart::getConditionsByType('shipping')->first()->get('name')
  2.  
  3. // Rezultat
  4. Call to undefined method Darryldecode\Cart\CartCondition::get()
Pyton_000
Jak już to

Cart::getConditionsByType('shipping')->first()->getName();
Generic
Dzięki @Pyton_000, teraz działa jak należy.
Pyton_000
Na przyszłośc polecam zaglądać do deklaracji klas których ma się zamiar używać.
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.