запрос laravel не перенаправляет правую страницу - PullRequest
1 голос
/ 31 мая 2019

Я хочу сделать фильтр на основе запроса kelas к таблице базы данных.Это не дает мне ошибки, только когда я нажимаю один из фильтров, он не показывает страницу jadwal с моим фильтром.Он показывает главную страницу, но URL-адрес правильный, как lps.com/?jadwal-2

Я сделал промежуточное ПО под названием SanitizeMiddleware из stackoverflow , но все еще не работает.

Этомой маршрут web.php

Route::get('/', 'HomepageController@index');

Route::resource('pengumuman', 'PengumumanController');
Route::resource('jadwal', 'JadwalController');
Route::resource('rapot', 'RapotController');

Это мой index () из моего JadwalController

public function index()
{
    if (request()->has('kelas')) {
        $jadwal = jadwal::where('kelas', request('kelas')); 
    } else {
        $jadwal = jadwal::all();
    }

    return view('jadwal.index')->with('jadwal',$jadwal);

    //$jadwal = jadwal::all();
    //return view('jadwal.index')->with('jadwal',$jadwal);
}

Это моя index.blade.php

<div class="container">
    <br>
    <h1>
        <strong>Jadwal Pelajaran</strong>
    </h1>
    <a href="/?kelas=1">jadwwal kelas 1</a>
    <a href="/?kelas-2">jadwal kelas 2</a>
    <a href="/?kelas-3">jadwal kelas 3</a>
    </form>
    <table class="table table-bordered">
        <thead>
            <tr>
                <th scope="col"></th>
                <th scope="col">07.00-08.00</th>
                <th scope="col">08.00-09.00</th>
                <th scope="col">09.00-10.00</th>
                <th scope="col">10.00-11.00</th>
                <th scope="col">10.00-12.00</th>
                <th scope="col">action</th>
            </tr>
        </thead>
        <tbody>
            @if(count($jadwal)>0)
                @foreach($jadwal as $jadwals)
                    <tr>
                        <th scope="row">{{$jadwals->hari}}</th>
                        <td>{{$jadwals->jamke1}}</td>
                        <td>{{$jadwals->jamke2}}</td>
                        <td>{{$jadwals->jamke3}}</td>
                        <td>{{$jadwals->jamke4}}</td>
                        <td>{{$jadwals->jamke4}}</td>
                        <td>
                            <a href="/jadwal/{{$jadwals->id}}/edit" class="btn btn-info">Edit</a>
                        </td>
                    </tr>
                @endforeach
            @else
                <p>tidak ada jadwal</p>
            @endif
        </tbody>
    </table>
</div>

И вот картина проблемы: -

это моя страница jadwal перед фильтром this is my jadwal page before filter

это моя страницапосле того, как я нажму на фильтр, используя request () this my page after i click the filter using request()

Ответы [ 2 ]

2 голосов
/ 31 мая 2019

это просто простая проблема с URL-адресом

, как вы видите, список jadwal отображается на маршруте

lps.com/jadwal

В чем проблема, как вы видите

<a href="/?kelas=1">jadwwal kelas 1</a>
<a href="/?kelas=2">jadwal kelas 2</a>
<a href="/?kelas=3">jadwal kelas 3</a>

При щелчке по любой из ссылок она перенаправляется на

Например, если я нажал jadwwal kelas 1

lps.com/?kelas=1

Так что это не такперенаправление на lps.com/jadwal?kelas=1

Так что попробуйте изменить

<a href="jadwal/?kelas=1">jadwwal kelas 1</a>
<a href="jadwal/?kelas=2">jadwal kelas 2</a>
<a href="jadwal/?kelas=3">jadwal kelas 3</a>

И последнее, если вы используете нумерацию страниц

{{$jadwal->links()}}

Это только добавит? Page = yourCurrentPageNumber

Но в некоторых ситуациях вам нужны фильтры и нумерация страниц

Так что попробуйте метод ниже

{{$jadwal->appends(request()->input())->links()}} 

Он добавит все GET Параметр запроса

Так что если вам нужно посмотреть nth page из kelas=1, он будет работать

Надеюсь, это поможет

, если высталкиваются и выдают любезно комментарий ниже

0 голосов
/ 31 мая 2019

HTML URL говорит, lps.com/?jadwal-2 просто вызывает домашнюю страницу с параметром GET с именем jadwal-2 без значения вообще. lps.com/jadwal это хорошо, lps.com/jadwal?kelas=2 это хорошо. забудь тире

Использование / в атрибуте href указывает системе начинать с пути верхнего уровня. Изменить на относительный, как:

<a href="?kelas=1">jadwwal kelas 1</a>
<a href="?kelas-2">jadwal kelas 2</a>
<a href="?kelas-3">jadwal kelas 3</a>

Таким образом, присутствие на странице lps.com/jadwal приведет к URL lps.com/jadwal?kelas=1, который является правильным синтаксисом и шаблоном.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...