使用CentOS 7在我的生产服务器中发生了一些奇怪的事情,问题是......在我的本地环境中我有许多使用Laravel 4开发的应用程序并且安装在CentOS 6.5或7等服务器上并且运行良好但这是不在这部分工作:
我真的不知道发生了什么,希望你能帮助我。
它无法使用表格或不使用它在网址中手动执行。
查看表单
{{ 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() }}
路线
Route::get('/buscar','CompanyController@search');
控制器
//Search
public function search()
{
$term = Input::get('s');
$category = Input::get('c');
var_dump($term);
var_dump($category);
}
更新
当我使用$ _GET [&#39; s&#39;]代替Laravel get函数时,它会返回:未定义的索引:s
第二次更新
我将GET更改为POST,现在工作正常,但Idk为什么不使用GET。
感谢那些试图解决这个问题的人!
答案 0 :(得分:2)
我认为问题在于服务器上的.htaccess文件。 RewriteRule没有正确完成。找到类似的行并修复如下。
RewriteRule ^(.*)$ /index.php?/$1 [QSA]
[QSA]是更改的部分
答案 1 :(得分:0)
{{ Form::open(array('method' => 'GET', 'action' => 'CompanyController@search', 'class' => 'f-search')) }}
尝试更改'action'
=&gt; 'buscar'
。
答案 2 :(得分:0)
我刚刚使用以下设置在本地进行了测试:
// 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>
按Submit
后,网址将更改为localhost/sotests/test?s=test
,页面将返回&#34; test&#34;打印在表格上方。
有些更改,我使用URL::to("test")
作为我的操作。我不知道这是否能解决你的问题,但它对我来说就像一个魅力。除此之外,我也没有使用Laravel的Form
课程,但我认为这不会有所作为。
请告诉我这是否适合您!