Jak w pętli foreach wkazać mnłodszy index tablicy

0

Mam taki problem mam sobie tablicę pobraną z bazy danych przez laravel i teraz przekazuje ją do widoku i w tym widoku moga tylko użyć pętli foreach, ale nie wiem jak się odwołać do młodszego indexu i-1 bo za pomoca pętli foreach tego nie umiem ja myslałem, żeby to zrobić w taki sposób, że pobrać ta tablice i jej jeszcze nie przekazywac do widoku i w kolejnej funkcji utworzyć nową tablicę która by miała index i ale to by było za dużo roboty dla komputera.

0

Gdybyś napisał, że widok robisz w Blade Templates to bym ci napisał, że jest coś takiego jak loop variable:

@foreach ($users as $user)
    @if ($loop->first)
        This is the first iteration.
    @endif

    @if ($loop->last)
        This is the last iteration.
    @endif

    <p>This is user {{ $user->id }}</p>
@endforeach
0

Ja robię widok z blade i też jest takie coś jak $loop->iteration ale jak tego użyć w tablicy bo tak nie mogę
$table->pole[$i]

0

A tak próbowałeś? $table->pole[$loop->iteration]

0

Nie bangla po prostu $users[$loop->iteration-1] ?

0

ŻĄden sposób nie działa
Jeżeli chodzi o ten

{{$list->dat[$loop->iteration-1]}}

To ten mi zwraca znaki ciągu dat.

0

Dlaczego nie użyjesz @for i @endfor ?
Co do tego co napisałeś w poście wyżej, to zamiast:

{{$list->dat[$loop->iteration-1]}}

Użyj tego w ten sposób:

{{$collection[$loop->iteration-1]->parametr}}

// np.
{{$list[$loop->iteration-1]->dat}} //o ile istnieje taki atrubut jak dat na modelu danego obiektu
{{$users[$loop->iteration-1]->email}} //na domyślnej kolekcji użytkowników

Powinieneś iterować po tym jak po zwykłej tablicy obiektów i odnosić się do konkretnej nazwy atrybutu.

0
mefsh napisał(a):

Dlaczego nie użyjesz @for i @endfor ?
Co do tego co napisałeś w poście wyżej, to zamiast:

{{$list->dat[$loop->iteration-1]}}

Użyj tego w ten sposób:

{{$collection[$loop->iteration-1]->parametr}}

// np.
{{$list[$loop->iteration-1]->dat}} //o ile istnieje taki atrubut jak dat na modelu danego obiektu
{{$users[$loop->iteration-1]->email}} //na domyślnej kolekcji użytkowników

Powinieneś iterować po tym jak po zwykłej tablicy obiektów i odnosić się do konkretnej nazwy atrybutu.

Tak tylko, że nie mogę operowac na tych danych np. w taki sposób
{{$list['name'][$i]}}
Nic nie wyświetla.

0

No nie możesz, bo atrybut name to nie tablica.

Przyjrzyj się uważnie moim przykładom i temu co Ty próbujesz zrobić, a zobaczysz że nie robisz tak jak napisałem...

Znajdź różnice między tym:

{{$list['name'][$i]}}
{{$list->dat[$loop->iteration-1]}}

a tym co ja pokazałem

{{$collection[$loop->iteration-1]->parametr}}
{{$list[$loop->iteration-1]->dat}} //o ile istnieje taki atrubut jak dat na modelu danego obiektu
{{$users[$loop->iteration-1]->email}} //na domyślnej kolekcji użytkowników

jeżeli nadal nie widzisz pokażę na Twoim przykładzie który teraz podałeś "nic nie wyświetla"

{{$list['name'][$i]}} //źle - odwołujesz się do atrybutu name jakby tam jeszcze była tablica nazw...
{{$list[$i]['name']}} // dobrze - wchodzisz w tablicy obiektów pod wskazany index, a dopiero potem sprawdzasz jaką ma on nazwę
0
mefsh napisał(a):

No nie możesz, bo atrybut name to nie tablica.

Przyjrzyj się uważnie moim przykładom i temu co Ty próbujesz zrobić, a zobaczysz że nie robisz tak jak napisałem...

Znajdź różnice między tym:

{{$list['name'][$i]}}
{{$list->dat[$loop->iteration-1]}}

a tym co ja pokazałem

{{$collection[$loop->iteration-1]->parametr}}
{{$list[$loop->iteration-1]->dat}} //o ile istnieje taki atrubut jak dat na modelu danego obiektu
{{$users[$loop->iteration-1]->email}} //na domyślnej kolekcji użytkowników

Już sobie poradziłem po prostu zrobiłem drugą funkcje, która pobiera określone pole w tej tablicy i tworzy nową tablicę tylko z określonymi polami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1