I am setting up user profile page, but I cannot insert data into mysql
server.
I cannot figure it out and solve this issue.
I have index.blade.php
in my profile folder, and from index page, going to create.blade.php
.
When I enter the submit button, my page redirects to
index.blade.php
, but inmysql
server, nothing is recorded.
web.php
Route::prefix('user')->group(function(){
Route::resource('profile', 'UserController');
});
create.blade.php
<form action="{{route('profile.store')}}" method="POST">@csrf
<ul class="information">
<li>Name :<br>
<input type="text" class="name" name="name">
</li><br>
<li>Gender :<br>
<div class="gender">
<select name="gender" id="" name="gender">
<option class="option" value="" selected="selected">Select Gender</option>
<option value="male" >Male</option>
<option value="female" class="selected">Female</option>
<option value="any">Any</option>
</select>
</div>
</li>
<li>Country :<br>
<div class="country">
<select name="country" id="" name="country">
<option value="" selected="selected">Select Country</option>
<option value="United States" class="selected">United States</option>
<option value="United Kingdom">United Kingdom</option>
</select>
</div>
</li><br>
<li>Birthday :<br>
<input type="text" class="birthday" id="bod" name="bod">
</li><br>
<li>User Description :<br>
<textarea name="description" id="" cols="60" rows="10"></textarea></li>
</ul>
<button type="submit" class="saveBtn">Save</button>
</div>
</form>
</div>
UserController.php
public function index()
{
return view('profile.index');
}
public function create()
{
return view('profile.create');
}
public function store(Request $request) {
$user_id = auth()->user()->id;
Profile::where('user_id',$user_id)->update([
'name'=>request('name'),
'gender'=>request('gender'),
'country'=>request('country'),
'bod'=>request('bod'),
'description'=>request('description')
]);
return redirect()->route('profile.index');
}
Profile.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Profile extends Model
{
protected $fillable = [
'user_id','name', 'gender', 'country', 'bod', 'description'
];
}
If you need to update an existing record:
$user_id = auth()->user()->id;
$update = Profile::where('user_id',$user_id)->update([
'name'=>$request->name,
'gender'=>$request->gender,
'country'=>$request->country,
'bod'=>$request->bod,
'description'=>$request->description
]);
if($update){
return redirect()->route('profile.index');
}else{
//do something if fails
}
But if you need a add a new profile then:
$create= Profile::create([
'user_id'=>auth()->user()->id,
'name'=>$request->name,
'gender'=>$request->gender,
'country'=>$request->country,
'bod'=>$request->bod,
'description'=>$request->description
]);
if($create){
return redirect()->route('profile.index');
}else{
//do something if fails
}