我想基于数据库表上的请求kelas
进行过滤。当我单击一个过滤器时,它没有显示任何错误,但没有显示我的过滤器的jadwal
页。它显示了主页,但网址是正确的,例如lps.com/?jadwal-2
我已经从stackoverflow制作了一个名为SanitizeMiddleware
的中间件,但仍然没有用。
这是我的路线 web.php
Route::get('/', 'HomepageController@index');
Route::resource('pengumuman', 'PengumumanController');
Route::resource('jadwal', 'JadwalController');
Route::resource('rapot', 'RapotController');
这是我的 JadwalController
中的 index()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页面
我使用request()单击过滤器后,这是我的页面
答案 0 :(得分:2)
这只是一个简单的网址问题
您看到的是 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
,它将起作用
希望有帮助
如果您正面临并在下面发表友善的评论
答案 1 :(得分:0)
谈论HTML URL,lps.com/?jadwal-2
只是使用名为jadwal-2
的GET参数调用主页,而根本没有任何价值。 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
,这是正确的语法和模式。