Autour de Laravel

Undefined variable: slug

Avatar de YoussoufOuattara
YoussoufOuattara

Hello à tous, Je suis sur la version de laravel 8. Je ne comprend pas l'erreur, je vous met les détails wep.php

use App\Http\Livewire\DetailsComponent;
...

 Route::get('/product/{slug}', DetailsComponent::class)->name('product.details');

DetalsComponent

use App\Models\Product;
use Livewire\Component;

class DetailsComponent extends Component
{
	public $slug;

    public function mount($slug)
    {
        $this->slug = $slug;
    }

    public function render()
    {
    	$product = Product::where('slug', $this->$slug)->first(); //ligne qui présente l'erreur mais j'ignore pourquoi
        return view('livewire.details-component', compact('product'))->layout('layouts.base');
    }
}

vue

<a href="{{route('product.details', ['slug'=>$product->slug])}}" title="{{$product->name}}">
                                            <figure><img src="{{ asset('assets/images/products')}}/{{$product->image}}" alt="{{$product->name}}"></figure>
                                        </a>
Avatar de KYoann
KYoann

Salut,

Commence par corriger cette erreur lors de ta requete et tiens nous au courant $this->$slug en $this->slug

Mais au dela de ca, j'ai l'impression que ton controller est mal formé.

Avatar de YoussoufOuattara
YoussoufOuattara

Merci chers amis ! J'utilise livewire donc je passe à travers les composants et non les controllers. Merci encore une fois !

Vous ne pouvez pas répondre à ce sujet.