ikartik90
ikartik90

Reputation: 2815

Post Method Not Working in Laravel

Form:

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

}

Unfortunately, the code neither seems to return $input on the screen (implying that its not executing the store() function at all), nor does it throw any error/exception.

Can anyone please let me know why the post method is not resulting in appropriate results here?


Edit 1

I attempted to directly return via the route's inline function, but even that didn't work. Hence, now I'm pretty confident that the post method is not getting triggered at all. This is what I did to verify it:

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

Upvotes: 3

Views: 2411

Answers (2)

Akshay Khale
Akshay Khale

Reputation: 8361

Even I had same issue, but your solution wasn't helpful for me since I was using Apache server instead of built in PHP server then I found this solution which says just enter space to form action, weird issue and solution but it worked for me...

Eg.

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

Upvotes: 0

ikartik90
ikartik90

Reputation: 2815

Well, I figured the answer to my own question here.

Turns out, that in order to be able to execute a post request, you need to explicitly deploy a PHP server as:

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

Whereas when I attempted to run it the first time through XAMPP, I was attempting to run the application out of sheer laziness, directly as:

http://localhost/myproject/public

which worked fine for a get request.

Upvotes: 1

Related Questions