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',
];
}
}
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
]);
}