Laravel - Nie zdefiniowana zmienna

0

Cześć, robię kurs Laravel Marcina Wesela, aktualnie[

Wyrzuca następujący błąd:

ErrorException: Undefined variable $invoice (View: D:\XAMPP\htdocs\test\resources\views\invoices\index.blade.php);

INDEX.BLADE.PHP:

<td><a href="{{ route ('invoices.edit', ['id' => $invoice])}}" class="btn btn-default">Edytuj</a></td>

FUNKCJA W KONTROLERZE:

public function edit($id)
    {
        $invoice = Invoice::find($id);

        return view('invoices.edit', ['invoice' => $invoice]);
    }

ROUTING:

Route::post('/edytuj/{id}', [InvoicesController::class, 'edit'])->name('invoices.edit');
5

Błąd dotyczy widoku index.blade.php tam masz nie zainicjowaną zmienną $invoice.
Na pewno do tego widoku ją przekazujesz, pokazałeś routing do edycji.

0

W jaki sposób przekazać? Mam tak samo jak na filmie, a samemu ciężko.
Poniżej web.php


Route::get('/', function () {
    return view('index');
});


Route::get('/faktury', [InvoicesController::class, 'index'])->name('invoices.index');
Route::get('faktury/dodaj', [InvoicesController::class, 'create'])->name('invoices.create');
Route::post('faktury/zapisz', [InvoicesController::class, 'store'])->name('invoices.store');
Route::post('faktury/edytuj/{id}', [InvoicesController::class, 'edit'])->name('invoices.edit');
0

pokaż metode index

0
public function index()
    {
        $invoices = Invoice::all(); //POBIERA WSZYSTKIE REKORDY Z TABELI;
        
        return view('invoices.index', ['invoices' => $invoices]);
    }

próbowałem dodać

$invoice = Invoice::find($id);
ale wtedy gubi $id
1

Przekazujesz invoices a nie invoice, pokaz jeszcze pełen kod index.blade bo wygląda jakby tam powinna byc jakas pętla

0
<tbody>
                        @foreach ($invoices as $item)
                        <tr>
                            <th scope="row">{{ $item->id }}</th>
                            <td>{{ $item->number }}</td>
                            <td>{{ $item->date }}</td>
                            <td>{{ $item->total }}</td>
                            <td><a href="{{ route ('invoices.edit', ['id' => $invoice])}}" class="btn btn-default">Edytuj</a></td>
                        </tr>
                        @endforeach
                        
                    </tbody>
2

Zmień $invoice na $item->id i bedzie chodzić a potem zastanów sie nad tym.

0

**Ślicznie dziękuję! **

0

Ma ktoś jakieś dobre materiały do nauki LARAVEL ver. 8.0 po polsku?

0

Tutaj nie jest problemem nauka Laravela, tyko programowania ogółem. Lepiej zacznij od podstaw, bo frameworkiem tylko sobie utrudnisz. Problem, który miałeś nie miał nic wspólnego z Laravelem jak dla mnie.

0

Skąd brać materiały? Które wydawnictwo najlepsze? Wszędzie coś nieee taaaak aaaaaaaaaaaaaaaa...!

3
  1. musisz przejść na angielski. Czym więcej przeczytasz tym później będzie Ci łatwiej.
  2. nie wiem jakie masz doświadczenie z PHP ale może poćwicz jeszcze trochę sam język i OOP?
  3. czytaj dokumentację.
  4. proponuję Laracast i filmy Jeffrey Way'a
2

Jakbym dzisiaj zaczynał to pewnie bym sobie kupił jakiś kurs na udemy typu "jak napisać własny framework". Potem bym spróbował napisać taki framework i na nim jakąś aplikację lub dwie. Jak już bym z grubsza rozumiał jak takie frameworki działają od środka to przesiadłbym się na jakiś popularny framework.

Jak zaczniesz od razu od frameworka to wielu rzeczy, które tam się dzieją długo nie zrozumiesz. No i angielskiego tak jak pisał @jurek1980 raczej w programowaniu nie unikniesz.

0

Z angielskim nie mam problemów jeśli chodzi o naukę lub o komunikację, problem dla mnie zawsze był z materiałem, nigdy nie było szkoda mi na książkę ale co do kursów to jestem uprzedzony. Wracam do podstaw.

3
Hesoyam napisał(a):

Ma ktoś jakieś dobre materiały do nauki LARAVEL ver. 8.0 po polsku?

E?

Nawet gdyby były, to na 99% byłby niższej jakości niż te po angielsku.

0
mr_jaro napisał(a):

Zmień $invoice na $item->id i bedzie chodzić a potem zastanów sie nad tym.

Ja bym jeszcze polcił że jak ktoś robi foreach($invoices as $invoice) zamiast $item

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