laravellaravel-livewirelaravel-modules

my livewire app is returning 404 not found when I selected a dropdown item


I am designing a laravel app, which I used module and livewire. I have a dropdown item which when I selected an item its returned an error 404 NOT FOUND Here is my livewire component. I am thinking may the wire:model="selectedSession" and wire:model="selectedTerm" is having problem

please i need your help

<?php
namespace Modules\Student\Http\Livewire;    
use Livewire\Component;
use Modules\Student\Entities\Result;
use Modules\Student\Entities\Term;
use Modules\Student\Entities\Section;   
class ResultDependance extends Component
{
    public $selectedSession = null;
    public $selectedTerm = null;
    public $results;
    public function mount($id)
    {
        $this->results = Result::with('student', 'section', 'term', 'subject')->where('student_id', $id)->get();
    }     
    public function render()
    {            
        return view('student::livewire.pages.resultdependance',
            ['terms' => Term::all()],
            ['sessions' => Section::all()]
        );
    }
}

my blade.php codes

<div class="section">
    <div class="card">
        <div class="card-body">
            <div class="card-title">
                <h4><strong>Result</strong></h4>
                <div class="form">
                    <form action="" method="post">
                    {{csrf_field()}}
                        <div class="form-group">
                            <select name="session" id="" class="form-control form-select" wire:model="selectedSession">
                                <option selected>Select Session</option>
                                @foreach($sessions as $session)
                                    <option value="{{$session->id}}">{{$session->section_title}}</option>
                                @endforeach
                            </select>
                        </div>
                        <br>
                        <div class="form-group">
                            <select name="term" id="" class="form-control form-select" wire:model="selectedTerm">
                                <option selected>Select Term</option>
                                @foreach($terms as $term)
                                    <option value="{{$term->id}}">{{$term->term}}</option>
                                @endforeach
                            </select>
                        </div>                                               
                        <input type="button" value="test" wire::loading.attr='disabled'>
                        <h1 wire:loading>please wait</h1>
                    </form>
                    <br>                    
                </div>
            </div>
        </div>
    </div>
</div>

I am designing a laravel app, which I used module and livewire. I have a dropdown item which when I selected an item its returned an error 404 NOT FOUND Here is my livewire component. I am thinking may the wire:model="selectedSession" and wire:model="selectedTerm" is having problem

please i need your help


Solution

  • It's missing the logic to filter the results based on the selected session and term.

    you can do it by using livewire hooks or by adding this

    public function filterResults()
        {
            $this->results = Result::with('student', 'section', 'term', 'subject')->where('student_id', $id)->where('section_id', $this->selectedSession)->where('term_id', $this->selectedTerm)->get();
        }
    

    and in your selectedSession

    <select name="session" id="" class="form-control form-select" wire:model.lazy="selectedSession" wire:change="filterResults">
    

    Now when the user changes the selected session or term, the component will filter the results and update the view accordingly.