Search code examples
phphtmllaravellaravelcollective

laravelcollective form POST not reaching store action


I am trying to store data from my form through POST but it does not reach my store action, i have tried several methods both none worked for me yet.

Store method in ContactController:

public function store(StoreMessage $request)
    {
        Log::info('Storing message: '.$request);
        Message::create([
            'name' => $request->name,
            'email' => $request->email,
            'phonenumber' => $request->phonenumber,
            'text' => $request->text
        ]);
    }

View:

{!! Form::open(['action' => 'ContactController@store']) !!}
            {!! Form::label('name', 'Name') !!}
            {!! Form::text('name', null, ['class' => 'form-control', 'required']) !!}

            {!! Form::submit('Creëer de activiteit!', array('class' => 'btn btn-primary', 'id' => 'createSubmit')) !!}
        {!! Form::close() !!}

Routes:

Route::get('/contact', 'ContactController@index');
Route::post('/contact', 'ContactController@store');

Here is the StoreMessage request:

<?php
namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class StoreMessage extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name' => 'required',
            'email' => 'required',
            'text' => 'required',
        ];
    }
}

Solution

  • Can you try normal request like this, Request $request, and check if it's working or not.

    You can also use validation with $request like below code.

    public function store(Request $request)
    {
         $rules = [
            'name' => 'required',
            'email' => 'required',
            'text' => 'required',
         ];
         $this->validate($request,$rules);
         Log::info('Storing message: '.$request);
         Message::create([
            'name' => $request->name,
            'email' => $request->email,
            'phonenumber' => $request->phonenumber,
            'text' => $request->text
         ]);
    }