Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Prosta tablica array + wyświetlenie danych
Forum PHP.pl > Forum > Przedszkole
Sklep102
Cześć,
Chce wykonać prostą tablice która będzie zawierać id gdy próbuje wyciągnąć dane w laravelu to pojawia się błąd.
  1. $id_sklepu =
  2. 'id' => $id,
  3.  
  4. );


  1. @foreach($id_sklepu as $id_sklepu ){
  2. {{$id_sklepu ->id}}
  3. }


Attempt to read property "id" on int

Jak wyświetlam tablicę to wyświetla się w ten sposób

Array ( [id] => 306 )

Może ktoś wyjaśnić co robię źle?
nospor
Wywal ten foreach. Foreach sie uzywa jak masz liste elementow a ty tutaj nic takeigo nie masz.

No i pozatym tam masz tablice a nie obiekty wiec raczej

{{$id_sklepu['id']}}
Sklep102
Jak wyciągnąć dane w takim razie z pętli?
Próbowałem przez collection ale robi do każdej oddzielne obiekt...
  1. foreach($data as $data)
  2. if ($all_shop != $unique_shop){
  3.  
  4.  
  5. $shop_data[]= collect([
  6. [
  7. 'id' => $id,
  8. 'name' => $name,
  9. ]]);
  10.  
  11.  
  12.  
  13.  
  14. }
  15. }

A chciałbym wyciągnąc dane z pętli i następnie wyświetlić je w blade $shop_data->id, $shop_data->name itp.

nospor
Sam sobie generujesz problemy... Juz nie wspominajac o tym, ze dokumentacji blade masz wszystko wyjasnione na przykladach :/

1) Nie rob w foreach nazwy po as takiej samej jak dana zrodlowa. No co to ma byc?

Nie: foreach($data as $data)
a: foreach($data as $row)


2) Po grzyba ci jakas kolekcja? Tablica to tablica, kurcze...

przykladowa tablica:
$data = [
['id' => 1, 'name' => 'blabla1'],
['id' => 2, 'name' => 'blabla2'],
]

a potem w blade, dokladnie za dokumentacja:


@foreach ($data as $row)
<p>This is user {{ $row['id'] }} {{ $row['name'] }}</p>
@endforeach


Proste rzeczy a ty jakies cuda na kiju urzadzasz. Czytaj dokumentacje
viking
A jak bardzo chcesz składni obiektowej bądź tablicowej to Laravel ma sprytną klasę od tego:

  1. $arr = new \Illuminate\Support\Fluent([
  2. 'a' => 1,
  3. ]);
  4.  
  5. dd($arr->a, $arr['a']);
nospor
Przerazaja mnie takie potworki, ktore robia wszystko za developera. A potem przychodzi taki na test rekrutacyjny i sie okazuje ze nie ogarnia podstaw i wczystym php nie jest w stanie napisac prostej klasy :/
viking
Akurat kolekcje w lv są bardzo przyjemne i sporo ułatwiają. Ta klasa Fluent też wewnętrznie jest często używana i gdybyś np robił test tylko z fw to kandydat z wiedzą o niej pewnie sporo by zyskał. Też ostatnio przyjąłem kandydata który mówił że ma 3 lata doświadczenia w lv, a potem okazało się że np kompletnie nie wie co to wyjątki, nagłówki, nie potrafi używać PDO.
nospor
Nadal nie widze potrzeby w tym przypadku uzywania fluent, tym bardziej ze dana osoba nie ogarnia prosty petli. Wpierw podstawy, potem mozna brac sie za jakies cuda na kiju wink.gif

Cytat
Też ostatnio przyjąłem kandydata który mówił że ma 3 lata doświadczenia w lv, a potem okazało się że np kompletnie nie wie co to wyjątki, nagłówki, nie potrafi używać PDO.

Moj ostatni kandydat jak zobaczyl test to powiedzial ze robic nie bedzie. Ot prosty kod do pobrania danych z bazy i wyswietlenie tabelki. Kandydat to super hiper master Symfony developer.
Potem zaczal slac nam maile ze jak smiemy go testowac na takim levelu. To powiedzialem, ze jak bardzo chcial uzyc symfony to mial composer i mogl se zainstalowac symfony. Potem przyszla masa jeszcze gorszych maili od niego, zakonczona perelka, ze on nie pisal sie na wyswietlanie danych w tabelce html bo on przeciez jest backend developer. szkoda gadac. poprzewracalo sie ostatnio co poniektorym
Sklep102
Panowie z całym szacunkiem do waszej wiedzy i doświadczenia, rozumiem że zajmujecie się programowaniem na co dzień i to wasza praca. Jeśli zrobicie code review tego co piszę to wyjdzie cała masa błędów. facepalmxd.gif facepalmxd.gif
Postanowiłem jednak że zrobię projekt który potrzebuje na własny użytek dlatego czasami rozwiązuje problem okrężną drogą mimo tego że pewnie jest proste rozwiązanie ale brakuje mi wiedzy i doświadczenia.
Nie znam pipeline dlatego przy tworzeniu filtrów utworzyłem konkretne zapytanie mimo że powtórzyłem czasami x30 kodu którego pewnie nie trzeba. Projekt zaczęty w 2020r. Został przepisany, poprawiony, dodałem nowe funkcje na razie traktuje to jako hobby w czasie wolnym. Nie planuje na razie szukać pracy na juniora bo wiem że moja wiedza jest zbyt mała. Wygodniej mi skorzystać z bootstrapa + laravela ponieważ niektóre funkcje są już gotowe wystarczy ich użyć np. paginacja. Z punktu widzenia full stack to kicha rozumiem.

Pozwoliłem zadać konkretne pytanie ponieważ nie wiem za bardzo jak się za to zabrać a siedzę już kolejny dzień z rzędu nad tym problemem.

Cytat(nospor @ 24.03.2022, 08:03:36 ) *
Sam sobie generujesz problemy... Juz nie wspominajac o tym, ze dokumentacji blade masz wszystko wyjasnione na przykladach :/

2) Po grzyba ci jakas kolekcja? Tablica to tablica, kurcze...

przykladowa tablica:
$data = [
['id' => 1, 'name' => 'blabla1'],
['id' => 2, 'name' => 'blabla2'],
]

a potem w blade, dokladnie za dokumentacja:


@foreach ($data as $row)
<p>This is user {{ $row['id'] }} {{ $row['name'] }}</p>
@endforeach


Zrobiłem tak jak mówisz

  1. $films_tags = [
  2. ['id' => $id, 'name' => $name],
  3.  
  4. ];

Gdyby ktoś chciał skorzystać w przyszłości:
Przed pętlą zdefiniować

$data = array();
$i = 0;

w pętli definiujemy dane i dodajemy $i++ aby cała pętla była zapisana w tablicy.
  1. $data [$i]['id'] = $id;
  2. $data [$i]['name'] = $name;
  3. $i++;
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.