Php Laravel 4:输入::get()不工作

Php Laravel 4:输入::get()不工作,php,laravel-4,Php,Laravel 4,我使用CentOS 7的生产服务器出现了一些奇怪的情况,问题是。。。在我的本地环境中,我使用Laravel 4开发了许多应用程序,这些应用程序安装在CentOS 6.5或7等服务器上,运行良好,但这在本部分不起作用: 我无法使用Input::get('my_get_variable')获取变量;无论是在控制器中还是在视图中,因为始终返回NULL 我真的不知道发生了什么,希望你能帮助我 它不使用表单工作,或者不使用表单在url中手动执行 查看表单 {{ Form::open(array('me

我使用CentOS 7的生产服务器出现了一些奇怪的情况,问题是。。。在我的本地环境中,我使用Laravel 4开发了许多应用程序,这些应用程序安装在CentOS 6.5或7等服务器上,运行良好,但这在本部分不起作用:

  • 我无法使用Input::get('my_get_variable')获取变量;无论是在控制器中还是在视图中,因为始终返回NULL
我真的不知道发生了什么,希望你能帮助我

它不使用表单工作,或者不使用表单在url中手动执行

查看表单

{{ Form::open(array('method' => 'GET', 'action' => 'CompanyController@search', 'class' => 'f-search')) }}
    <input type="search" id="search-text" name="s" class="form-control input-lg" placeholder="Buscar empresas..." required>
    <select id="search-category" name="c" class="form-control input-lg">
        <option value="">Categoría</option>
        @foreach ($categories as $category)
            <optgroup label="{{ $category->name }}" id="{{ $category->id }}">
                @foreach ($category['subcategories'] as $subcategory)
                <option value="{{ $subcategory->id }}" id="{{ $subcategory->id }}">{{ $subcategory->name }}</option>
                @endforeach
            </optgroup>
        @endforeach
    </select>
    <input type="submit" class="btn btn-lg btn-primary" value="Buscar">
{{ Form::close() }}
控制器

//Search
public function search()
{
    $term = Input::get('s');
    $category = Input::get('c');

    var_dump($term);
    var_dump($category);
}
更新

当我使用$_GET['s']而不是Laravel GET函数时,它返回以下内容:未定义索引:s

第二次更新

我更改了GET-to-POST,现在可以正常工作,但Idk为什么不使用GET

感谢那些试图解决这个问题的人

{{ Form::open(array('method' => 'GET', 'action' => 'CompanyController@search', 'class' => 'f-search')) }}

尝试更改
'action'
=>
'buscar'

我刚刚使用以下设置在本地进行了测试:

// routes.php
Route::get("/test", "AppController@test");

// AppController.php
public function test() { 
  print_r(Input::get("test"));
  return View::make("test");
}

// test.blade.php
<form method="GET" action="{{ URL::to("test")}} ">
  <input type="text" name="s" class="form-control">
  <input type="submit">
</form>
//routes.php
路由::get(“/test”,”AppController@test");
//AppController.php
公共函数测试(){
打印(输入::获取(“测试”);
返回视图::生成(“测试”);
}
//test.blade.php
Submit
后,url变为
localhost/sotests/test?s=test
,页面返回时表单正上方打印有“test”

在一些更改中,我使用了
URL::to(“test”)
作为我的操作。我不知道这是否能解决你的问题,但它对我来说很有魅力。除此之外,我也没有使用Laravel的
表单
类,但我认为这不会有什么不同


让我知道这是否适合你

我认为问题在于服务器上的.htaccess文件。重写规则没有正确执行。找到类似的线并按如下所示进行修复

RewriteRule ^(.*)$ /index.php?/$1 [QSA]

[QSA]是否更改了部分

如果您使用Input::all(),您会得到任何结果吗?我正在尝试获取's'和'c'变量,但是如果我打印Input::all(),我只能得到以下结果:array(1){[“query_string”]=>string(0)”}@SoldierCorp听起来您的表单是使用get方法发送的。@RichardA是的,是用于搜索功能。我认为您应该粘贴“查看”(表单)代码和控制器代码。或者,如果他已经在
/buscar
,您可以删除该操作,对吗?我个人为例如register定义路由名称:route::post('users/register',array('as'=>'register','uses'=>'AuthController@registerAction')); 然后我用它来表示'action'=>'register'是的,我以前见过命名路由,它们也很好用,我只是说如果
action
被删除,它应该默认为他所在的页面。你是对的,但在这种情况下,元素搜索可以在每个页面上进行,所以它不起作用:)使用'action'=>'buscar'不起作用,但我想操作是可以的,因为在html源代码结果中,可以在action属性中看到路由的确切url。嗨!本地工作正常,与我的其他应用程序一样,本例也适用,但在我的CentOS 7服务器上不适用,即使我在另一个应用程序的另一个droplet中使用另一个CentOS 7,也适用,但不适用于此:/Huh。真奇怪。有些东西必须配置不正确,因为如果那不起作用,我什么都没有。。。我无法修复我无法复制的东西。对不起,是的,别担心,蒂姆,我明白。我想知道是否有人有同样的问题需要检查如何解决,但正如我告诉Eimantas的那样,我将尝试使用jquery使用ajax函数。谢谢没问题,希望你能把这个修好。干杯是的,谢谢。将RewriteRule^(.*)$index.php?/$1[L]更改为RewriteRule^(.*)$/index.php?/$1[QSA]解决了问题
RewriteRule ^(.*)$ /index.php?/$1 [QSA]