后期方法在Laravel中不起作用

时间:2015-04-01 18:38:57

标签: php forms post laravel blade

形式:

@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;
    }

}

不幸的是,代码似乎既没有在屏幕上返回$input(暗示它根本没有执行store()函数),也没有抛出任何错误/异常。

任何人都可以告诉我为什么post方法不能在此产生适当的结果吗?


修改1

我尝试通过return的内联函数直接route,但即使这样也行不通。因此,现在我非常确信post方法根本没有被触发。这就是我所做的验证:

Route::post('/', function()
{
    return 'Hello';
});

2 个答案:

答案 0 :(得分:1)

好吧,我在这里找到了自己问题的答案。

事实证明,为了能够执行post请求,您需要将PHP服务器显式部署为:

php -s localhost:<AnyFreePort> -t <YourRootDirectory>

当我第一次尝试通过XAMPP运行它时,我试图从纯粹的懒惰中运行应用程序,直接如下:

http://localhost/myproject/public

适用于get请求。

答案 1 :(得分:0)

即使我遇到同样的问题,但由于我使用的是Apache服务器而不是内置的PHP服务器,因此您的解决方案对我没有帮助 然后我找到了this解决方案,说只需要输入空格来形成动作,奇怪的问题和解决方案,但它对我有用......

例如

{!! Form::open(array('url' => ' ', 'method' => 'post')) !!}