如何在 Laravel 中完成搜索之前从数据库中隐藏结果?
how to hide results from database until the seacrh is complete in Laravel?
我正在搜索网站,以便用户可以从数据库中搜索结果
一切正常,但我如何隐藏结果直到用户完成搜索?
这是控制器:
class SearchController extends Controller
{
public function search(Request $request){
// Get the search value from the request
$search = $request->input('search');
// Search in the title and body columns from the posts table
$classes = Classes::query()
->where('course_name', 'LIKE', "%{$search}%")
->orWhere('course_lecturer', 'LIKE', "%{$search}%")
->get();
// Return the search view with the results compacted
return view('search', compact('classes'));
}
}
视图如下:
<div class="container">
<h1>Search</h1>
<form action="{{ route('search') }}" method="GET">
<input style="font-family: Frutiger" dir="rtl" type="text" placeholder="search" name="search" required/>
<button style="font-family: Frutiger" class="col-md-12 btn btn-primary" type="submit">Search</button>
</form>
</div>
@if($classes->isNotEmpty())
@foreach ($classes as $classes)
<div class="post-list text-center">
<p>{{ $classes->course_name }}</p>
<p>{{ $classes->course_lecturer }}</p>
<a target="_blank" href="{{ $classes->file_link }}"><img src="{{ $classes->file_link }}" href="{{ $classes->file_link }}" width="150px" height="300px"></a>
<hr>
</div>
@endforeach
@else
<div>
<h2 class="text-center">No posts found</h2>
</div>
@endif
所以我的问题是视图在用户搜索之前显示所有结果,我希望在搜索完成之前隐藏结果
如何实现?
这是因为在第一次加载页面时 search
为空,所以您要返回所有数据库!
你可以这样修复:
class SearchController extends Controller
{
public function search(Request $request){
// Get the search value from the request
$search = $request->input('search');
$classes = [];
if($search) {
// Search in the title and body columns from the posts table
$classes = Classes::query()
->where('course_name', 'LIKE', "%{$search}%")
->orWhere('course_lecturer', 'LIKE', "%{$search}%")
->get();
}
// Return the search view with the results compacted
return view('search', compact('classes'));
}
}
我正在搜索网站,以便用户可以从数据库中搜索结果
一切正常,但我如何隐藏结果直到用户完成搜索?
这是控制器:
class SearchController extends Controller
{
public function search(Request $request){
// Get the search value from the request
$search = $request->input('search');
// Search in the title and body columns from the posts table
$classes = Classes::query()
->where('course_name', 'LIKE', "%{$search}%")
->orWhere('course_lecturer', 'LIKE', "%{$search}%")
->get();
// Return the search view with the results compacted
return view('search', compact('classes'));
}
}
视图如下:
<div class="container">
<h1>Search</h1>
<form action="{{ route('search') }}" method="GET">
<input style="font-family: Frutiger" dir="rtl" type="text" placeholder="search" name="search" required/>
<button style="font-family: Frutiger" class="col-md-12 btn btn-primary" type="submit">Search</button>
</form>
</div>
@if($classes->isNotEmpty())
@foreach ($classes as $classes)
<div class="post-list text-center">
<p>{{ $classes->course_name }}</p>
<p>{{ $classes->course_lecturer }}</p>
<a target="_blank" href="{{ $classes->file_link }}"><img src="{{ $classes->file_link }}" href="{{ $classes->file_link }}" width="150px" height="300px"></a>
<hr>
</div>
@endforeach
@else
<div>
<h2 class="text-center">No posts found</h2>
</div>
@endif
所以我的问题是视图在用户搜索之前显示所有结果,我希望在搜索完成之前隐藏结果
如何实现?
这是因为在第一次加载页面时 search
为空,所以您要返回所有数据库!
你可以这样修复:
class SearchController extends Controller
{
public function search(Request $request){
// Get the search value from the request
$search = $request->input('search');
$classes = [];
if($search) {
// Search in the title and body columns from the posts table
$classes = Classes::query()
->where('course_name', 'LIKE', "%{$search}%")
->orWhere('course_lecturer', 'LIKE', "%{$search}%")
->get();
}
// Return the search view with the results compacted
return view('search', compact('classes'));
}
}