Laravel 搜索路线
Laravel Route for Search
我在 laravel 上试用了关于 Live Search
的教程
但它在 homepage(index)
我想访问它 localhost/laravel/public/search
这是控制器
class SearchController extends Controller
{
public function index()
{
return view('search.search');
}
public function search(Request $request)
{
if ($request->ajax())
$output ="";
$orderinfo=DB::table('tb_order')->where('shipcustomername','LIKE','%' . $request->search.'%' )
->orWhere('orderId','LIKE','%' .$request->search. '%')->get();
if ($orderinfo)
{
foreach ($orderinfo as $key =>$orderinfo ){
$output.='<tr>' .
'<td>' .$orderinfo->orderId .'</td>' .
'<td>' .$orderinfo->email .'</td>' .
'<td>' .$orderinfo->subsource .'</td>' .
'</tr>';
}
return Response($output);
}
和我的路线
Route::get('/' ,'SearchController@index');
Route::get('/search' ,'SearchController@search');
在我的资源文件夹中
我有文件夹搜索,它包含 search.blade.php
<div class="container">
<div class="row">
<div class="panel panel-default">
<div class="panel-heading">
<h3>Order Info</h3>
</div>
<div class="panel-body">
<div class="form-group">
<input type="text" class="form-control" id="search" name="search"></input>
</div>
<table class="table table-bordered table-hover ">
<thead>
<tr>
<th>OrderID</th>
<th>Email</th>
<th>SubSource</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
<script type="text/javascript">
$('#search').on('keyup',function(){
$value=$(this).val();
$.ajax({
type : 'get',
url : '{{URL::to('search')}}',
data : {'search':$value},
success:function(data){
$('tbody').html(data);
}
});
});
</script>
</body>
我知道这是 index 的路由,
Route::get('/' ,'SearchController@index');
但如果尝试将其更改为
Route::get('search' ,'SearchController@index');
我收到错误 500
正确的路由方式是什么,这样它就不会使用索引
谢谢
很有可能您正在发送空数据尝试更改此设置:
$value=$(this).val();
对此:
var value = $('#search').val();
如果不是,那么您也没有提交数据,也没有添加表格:
{{ Form::open(array('method'=>'GET','class'=> 'col-md-6','url' => '/search', 'id'=>'searchform')) }}
<div class="form-group">
<input type="text" class="form-control" id="search" name="search"></input>
</div>
{{ Form::close() }}
将您的 ajax 请求更改为:
$('#searchform').on('submit', function(e) {
e.preventDefault();
var search = $('#search').val();
$.ajax({
type: "GET",
url: {{URL::to('search')}},
data: {search:search}
success:function(data){
$('tbody').html(data);
}
});
});
如果不是那么:
将 APP_DEBUG in .env
设置为 true 因为请求是 ajax,使用 chrome 并按 f12,转到网络选项卡 -> 单击错误 -> 预览选项卡,如果它只是用空白屏幕说错误,那么也许你应该 chmod 775(写权限)然后再试一次
我在 laravel 上试用了关于 Live Search
的教程但它在 homepage(index)
我想访问它 localhost/laravel/public/search
这是控制器
class SearchController extends Controller
{
public function index()
{
return view('search.search');
}
public function search(Request $request)
{
if ($request->ajax())
$output ="";
$orderinfo=DB::table('tb_order')->where('shipcustomername','LIKE','%' . $request->search.'%' )
->orWhere('orderId','LIKE','%' .$request->search. '%')->get();
if ($orderinfo)
{
foreach ($orderinfo as $key =>$orderinfo ){
$output.='<tr>' .
'<td>' .$orderinfo->orderId .'</td>' .
'<td>' .$orderinfo->email .'</td>' .
'<td>' .$orderinfo->subsource .'</td>' .
'</tr>';
}
return Response($output);
}
和我的路线
Route::get('/' ,'SearchController@index');
Route::get('/search' ,'SearchController@search');
在我的资源文件夹中 我有文件夹搜索,它包含 search.blade.php
<div class="container">
<div class="row">
<div class="panel panel-default">
<div class="panel-heading">
<h3>Order Info</h3>
</div>
<div class="panel-body">
<div class="form-group">
<input type="text" class="form-control" id="search" name="search"></input>
</div>
<table class="table table-bordered table-hover ">
<thead>
<tr>
<th>OrderID</th>
<th>Email</th>
<th>SubSource</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
<script type="text/javascript">
$('#search').on('keyup',function(){
$value=$(this).val();
$.ajax({
type : 'get',
url : '{{URL::to('search')}}',
data : {'search':$value},
success:function(data){
$('tbody').html(data);
}
});
});
</script>
</body>
我知道这是 index 的路由,
Route::get('/' ,'SearchController@index');
但如果尝试将其更改为
Route::get('search' ,'SearchController@index');
我收到错误 500
正确的路由方式是什么,这样它就不会使用索引
谢谢
很有可能您正在发送空数据尝试更改此设置:
$value=$(this).val();
对此:
var value = $('#search').val();
如果不是,那么您也没有提交数据,也没有添加表格:
{{ Form::open(array('method'=>'GET','class'=> 'col-md-6','url' => '/search', 'id'=>'searchform')) }}
<div class="form-group">
<input type="text" class="form-control" id="search" name="search"></input>
</div>
{{ Form::close() }}
将您的 ajax 请求更改为:
$('#searchform').on('submit', function(e) {
e.preventDefault();
var search = $('#search').val();
$.ajax({
type: "GET",
url: {{URL::to('search')}},
data: {search:search}
success:function(data){
$('tbody').html(data);
}
});
});
如果不是那么:
将 APP_DEBUG in .env
设置为 true 因为请求是 ajax,使用 chrome 并按 f12,转到网络选项卡 -> 单击错误 -> 预览选项卡,如果它只是用空白屏幕说错误,那么也许你应该 chmod 775(写权限)然后再试一次