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

671 Views Asked by At

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

1

There are 1 best solutions below

0
On BEST ANSWER

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.