搜索功能在localhost中工作正常但在VPS中没有

时间:2017-05-06 09:15:52

标签: php laravel search vps

我在我的laravel网站上有这个搜索功能,它在我的localhost中工作正常。但是当我使用git hook在vultr vps中部署它时,搜索功能无法正常工作。

当我点击localhost中的搜索按钮时,它会生成这样的网址:http://127.0.0.1:8000/search?query=test&location=&keywords=&_token=I5BDCrqHtdwvsSwrHTrdAAGYfdukPCgU3OAGDySw

但是当在部署服务器中没有任何反应时,它只会进行一些回发加载。

SearchController.php

public function getSearch(Request $request)
{
    $this->validate($request, [
        'query' => 'required_without_all:keywords,location',
        ], ['query.required_without_all' => 'Please fill atleast one field.']

    );

    $query = $request['query'];
    $location = $request['location'];
    $keywords = $request['keywords'];

    if (isset($location) && isset($query) && $keywords) {
        $posts = Post::orderBy('created_at', 'desc')->where('title', 'like', '%' . $query . '%')->where('location', 'like', $location)->where('body', 'like', $keywords)->paginate(5);
    }
    .......
    else {
        $query = '';
        $location = '';
        $posts = Post::orderBy('created_at', 'desc')->where('location', 'like', $location)->paginate(5);
    }

    return view('includes.search-index', ['posts' => $posts]);      
}

路由/ web.php

Route::get('/search', [
    'uses' => 'SearchController@getSearch',
    'as' => 'search'
]);

search.blade.php

<form action="{{ route('search') }}" method="get" >
    .....
</form>

有什么想法吗?似乎请求没有通过?因为我有一个空的请求?

2 个答案:

答案 0 :(得分:0)

检查表单操作中创建的链接。如果您的.env或config中有localhost,则该路由可能会创建错误的链接。否则请查看您的服务器日志。

您也可以在控制器中进行调试。首先它会在问题出现的后续步骤中运行。

答案 1 :(得分:0)

我的nginx /etc/nginx/sites-available/default文件中有错误。

location / {
            try_files $uri $uri/ /index.php?query_string;
}

它应该是

location / {
            try_files $uri $uri/ /index.php?$query_string;
}