0

我一直在努力得到这个,但我做不到。搜索一切正常,分页也出现了,但是每当我点击任何页码时都会打开一个空白页面,因为没有“获取”该请求的路线,任何人都可以引导到某个地方,我可以找到如何显示其他带有搜索查询的页面还是我必须创建获取路线才能显示其他页面?我都迷茫了怎么办?

尝试使用 GET 方法仍然无法正常工作

路线

Route::get('search/','Coins@search')->name('coin.search');

控制器

public function search(){
        $keyword = Input::get('search');
        if($keyword){
            $result = [];
            $resultByName = Coin::
                                where('type','=','coin')
                                ->where('parent_id','=',0)
                                ->where('coin_name','LIKE',"%{$keyword}%")
                                ->orderBy('id', 'asc')
                                ->paginate(10);
            $resultByDescription = Coin::where('type','=','coin')
                ->where('parent_id','=',0)
                ->where('description','LIKE',"%{$keyword}%")
                ->orderBy('id', 'asc')
                ->paginate(10);
            if($resultByName->count()) {
                $result =  $resultByName;
                $message = "Coin Detail found in coin name !! based on searching data : ".$keyword;
            }else{
                if($resultByDescription->count()){
                    $result =  $resultByDescription;
                    $message = "Coin Detail found in description !! based on searching data : ".$keyword;
                }else{
                    $result = Coin::where('type','=','coin')->where('parent_id','=',0)->get();
                    $message = "No Coin Found !! based on searching data : ".$keyword;
                }
            }
            return view($this->layout.'coins')->with([
                'allCoins' => $result,
                'message'  => $message
            ]);
        }
    }

  {!! Form::open([
                    'route'   => 'coin.search'
                    ,'method' => 'GET'
                    ,'id'     => 'coinSearch'])
   !!}
         <input type="text" placeholder="Search Your Coin Here . . . " name="search">
         <button type="submit" class="btn btn-sm btn-primary">Search</button>
  {!! Form::close() !!}
{!! $allCoins->render() !!}
4

3 回答 3

0

分页仅适用于 GET 参数。您应该使用 GET 方法进行搜索和分页。

POST 请求不是为了显示数据。为什么?有很多原因。

我建议您将路线类型更改为 GET,将搜索表单方法更改为 GET。

于 2018-12-05T10:25:46.290 回答
0

对分页查询返回的结果对象调用 appends 方法。它接受一个数组作为参数,在数组中,您可以指定任意数量的变量。

  $results->appends ();

比如你的一个查询会变成

$resultByName = Coin::where('type','=','coin')
                 ->where('parent_id','=',0)
                 ->where('coin_name','LIKE',"%{$keyword}%")
                 ->orderBy('id', 'asc')
                 ->paginate(10);
 $resultByName->appends (array ('keyword' => $keyword));

它将附加链接中的所有变量,您的 URL 将变为

http://your_domain/search?keyword=$keyword(value of this variable)

分页无需添加任何自定义代码即可工作。

于 2018-12-06T09:32:30.523 回答
0

好吧,我显然不是自己解决了这个问题,但我所要做的就是像这样重新配置我的路线

 Route::get('coin/search/{keyword?}', ['uses' => 'Coins@doSearch'])->name('coin.search');
 Route::resource('coin' , 'Coins');
于 2018-12-07T04:34:59.700 回答