Post 方法在 Laravel 中不起作用
Post Method Not Working in Laravel
表格:
@section('form')
<div class="col-sm-4">
{!! Form::open() !!}
<div class="form-group">
{!! Form::label('name', 'Name:') !!}
{!! Form::text('name', 'Enter your name', ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('contact', 'Contact Number:') !!}
{!! Form::text('contact', 'Enter your contact number', ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('location', 'Location:') !!}
{!! Form::select('location', $locations, null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('service', 'Service Required:') !!}
{!! Form::select('service', $services, null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::submit('Just go Befikr >>', ['class' => 'btn btn-primary form-control']) !!}
</div>
{!! Form::close() !!}
</div>
@stop
routes.php:
<?php
Route::get('/', 'PagesController@index');
Route::post('/', 'PagesController@store');
PagesController.php
<?php namespace App\Http\Controllers;
use App\service_location;
use App\service_type;
use App\service_request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Request;
class PagesController extends Controller {
public function index()
{
$locations = service_location::lists('location_area', 'location_id');
$services = service_type::lists('service_desc', 'service_id');
return view('home.index', compact('locations','services'));
}
public function store()
{
$input = Request::all();
return $input;
}
}
不幸的是,代码在屏幕上似乎 return $input
(暗示它根本没有执行 store()
函数),也没有抛出任何 error/exception.
任何人都可以告诉我为什么 post
方法在这里没有产生适当的结果吗?
编辑 1
我试图通过 route
的内联函数直接 return
,但即使那样也行不通。因此,现在我非常有信心根本不会触发 post
方法。这就是我所做的验证:
Route::post('/', function()
{
return 'Hello';
});
好吧,我在这里找到了我自己问题的答案。
事实证明,为了能够执行 post
请求,您需要显式部署 PHP 服务器:
php -s localhost:<AnyFreePort> -t <YourRootDirectory>
而当我第一次通过 XAMPP 尝试 运行 时,我是出于纯粹的懒惰而尝试 运行 应用程序,直接作为:
http://localhost/myproject/public
对于 get
请求工作正常。
即使我遇到了同样的问题,但你的解决方案对我没有帮助,因为我使用的是 Apache 服务器而不是内置 PHP 服务器
然后我找到了 this 解决方案,它说只需输入 space 即可形成操作,奇怪的问题和解决方案,但它对我有用...
例如
{!! Form::open(array('url' => ' ', 'method' => 'post')) !!}
表格:
@section('form')
<div class="col-sm-4">
{!! Form::open() !!}
<div class="form-group">
{!! Form::label('name', 'Name:') !!}
{!! Form::text('name', 'Enter your name', ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('contact', 'Contact Number:') !!}
{!! Form::text('contact', 'Enter your contact number', ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('location', 'Location:') !!}
{!! Form::select('location', $locations, null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('service', 'Service Required:') !!}
{!! Form::select('service', $services, null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::submit('Just go Befikr >>', ['class' => 'btn btn-primary form-control']) !!}
</div>
{!! Form::close() !!}
</div>
@stop
routes.php:
<?php
Route::get('/', 'PagesController@index');
Route::post('/', 'PagesController@store');
PagesController.php
<?php namespace App\Http\Controllers;
use App\service_location;
use App\service_type;
use App\service_request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Request;
class PagesController extends Controller {
public function index()
{
$locations = service_location::lists('location_area', 'location_id');
$services = service_type::lists('service_desc', 'service_id');
return view('home.index', compact('locations','services'));
}
public function store()
{
$input = Request::all();
return $input;
}
}
不幸的是,代码在屏幕上似乎 return $input
(暗示它根本没有执行 store()
函数),也没有抛出任何 error/exception.
任何人都可以告诉我为什么 post
方法在这里没有产生适当的结果吗?
编辑 1
我试图通过 route
的内联函数直接 return
,但即使那样也行不通。因此,现在我非常有信心根本不会触发 post
方法。这就是我所做的验证:
Route::post('/', function()
{
return 'Hello';
});
好吧,我在这里找到了我自己问题的答案。
事实证明,为了能够执行 post
请求,您需要显式部署 PHP 服务器:
php -s localhost:<AnyFreePort> -t <YourRootDirectory>
而当我第一次通过 XAMPP 尝试 运行 时,我是出于纯粹的懒惰而尝试 运行 应用程序,直接作为:
http://localhost/myproject/public
对于 get
请求工作正常。
即使我遇到了同样的问题,但你的解决方案对我没有帮助,因为我使用的是 Apache 服务器而不是内置 PHP 服务器 然后我找到了 this 解决方案,它说只需输入 space 即可形成操作,奇怪的问题和解决方案,但它对我有用...
例如
{!! Form::open(array('url' => ' ', 'method' => 'post')) !!}