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.
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
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]
A tak próbowałeś? $table->pole[$loop->iteration]
Nie bangla po prostu $users[$loop->iteration-1] ?
ŻĄden sposób nie działa
Jeżeli chodzi o ten
{{$list->dat[$loop->iteration-1]}}
To ten mi zwraca znaki ciągu dat.
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.
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.
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ę
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.