In laravel 11 / livewire 3 app I have a component(IlluminateViewComponent) which shows
listing of QuizCategory models :
<?php
namespace AppViewComponentsCommon;
use AppEnumsConfigValueEnum;
use AppModelsQuizCategory;
use IlluminateViewComponent;
class CardItemsListing extends Component
{
public string $listingTitle = 'You can pass one of our quizzes';
...
public function __construct(?string $listingTitle = null, ?string $locale = '', ?int $quizCategoryId = null, ?int $page = 1)
{
$this->listingTitle = $listingTitle;
}
public function render(): View|Closure|string
{
...
$quizCategories = QuizCategory::query()
->getByActive(true)
->withCount('quizzes')
->paginate();
return view('components.common.card-items-listing', [
'navListing' => $quizCategories->toArray(),
'quizCategories' => $quizCategories
]);
}
}
and in blade file I show $quizCategories array ok.
Now I need do add some actions in components.common.card-items-listing blade file , like :
<div class="flex flex-grow pl-2">
<img src="/img/favorite.png" alt="Save in Favorites" wire:click="SaveInFavorites( '{{$quizCategory['id']}}' )"/>
</div>
<div class="w-16 align-items-end justify-end align-top m-0 p-1 d2">
<img src="/img/disable.png" alt="Disable this quiz" wire:click="disableQuiz( '{{ $quizCategory['id'] }}' )" />
</div>
I suppose that wire:click=
will not work with IlluminateViewComponent
component.
a) Have I to remade it to LivewireComponent class?
b) Can I refer with these actions to common laravel controller ?
c) In some other way ?