Reputation: 93
I want to submit data into db when the user fills a form. But it is behaving strangely.
This is my contoller function:
namespace App\Http\Controllers\PrivatePages;
use App\Http\Controllers\Controller;
use App\Http\Requests\Request\CreateProductRequest;
/*use App\Productuse Illuminate\Support\ServiceProvider;*/
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\DB;
use App\Http\FormRequests;
public function UpdateAdminProfile(CreateProductRequest $request){
Product::StoreProductDetails($request);
}
This is my model function which defines the funtion:
namespace App;
use App\Http\Requests\CreateProductRequest;
use Illuminate\Database\Eloquent\Model;
use App\Http\Controllers\PrivatePages;
use Illuminate\Http\Request;
public static function StoreProductDetails(CreateProductRequest $request)
{
$saveproduct = new Product();
$saveproduct->name = $request->get('name');
$saveproduct->description = $request->get('description');
$saveproduct->save();
}
this is my request file:
<?php
namespace App\Http\Requests\Request;
use Illuminate\Foundation\Http\FormRequest;
class CreateProductRequest 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',
'description' => 'required',
'contactinfo'=> 'required',
];
}
public function messages()
{
return[
'name.required' => 'Enter Name',
'description.required' => 'Enter description',
'contact.required' => 'Enter contact info',
];
}
}
my form
@if (Session::has('success'))
<div class="alert alert-success" role="alert" style="font-size: 18px;">
<strong>Success: </strong>
{{ Session::get('success') }}
</div>
@endif
<form id="" method="post" class="form-horizontal" action="{{
route('updateadminprofile')}}"enctype="multipart/form-data" >
<div class="form-group">
<label class="col-sm-4 control-label" for="userName"> Name</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="name" name="name"
placeholder="name}" value="name" />
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="userName"> Description</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="description"
name="description" placeholder="Description}" value="description" />
</div>
</div>
<button style="margin-left: 30%" type="submit" class="btn btn-primary"
name="signup" value="sumbmit" >Save</button>
It is not giving error
jsut refreshes the page and no record is saving in db
Why is it throwing an error as every thing seems good? Now it just Refreshes the page. not even going to route specified in action of form
Upvotes: 0
Views: 1259
Reputation: 9853
Change Your CreateProductRequest to the following by extending FormRequest not Request
use Illuminate\Foundation\Http\FormRequest;
class CreateProductRequest extends FormRequest
{
public function rules()
{
return [
'name' => 'required',
'description' => 'required',
'contactinfo'=> 'required',
];
}
public function messages()
{
return [
'name.required' => 'Enter Name',
'description.required' => 'Enter description',
'contact.required' => 'Enter contact info',
];
}
}
Hope this works :)
Upvotes: 3
Reputation: 342
Please try this:
public static function StoreProductDetails(CreateProductRequest $request)
{
$saveproduct = new Product();
$saveproduct->name = $request->get('name');
$saveproduct->description = $request->get('description');
$saveproduct->save();
}
And change your CreateProductRequest.php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class CreateProductRequest extends FormRequest
{
public function rules()
{
return [
'name' => 'required',
'description' => 'required',
'contactinfo'=> 'required',
];
}
public function messages()
{
return [
'name.required' => 'Enter Name',
'description.required' => 'Enter description',
'contact.required' => 'Enter contact info',
];
}
}
Edited: you can check errors in view
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
Upvotes: 1