Reputation:
my 3 inputs address, number and name_of_firm is showing null value but i fill the value in form. This is my form
<form id="myForm" method="post" action="{{ route('dealer.store') }}">
@csrf
<div class="user-box">
<input type="text" name="name" required="">
<label>Name</label>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="user-box">
<input type="text" name="name_of_firm" required="">
<label>Name Of Firm</label>
@error('name_of_firm')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="user-box">
<input type="text" name="number" required="">
<label>Number</label>
@error('number')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="user-box">
<input type="text" name="address" required="">
<label>Address</label>
@error('address')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="user-box">
<input type="email" name="email" required="">
<label>Email</label>
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="user-box">
<input type="password" name="password" required="">
<label>Password</label>
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<button class="a" id="a" value="submit" name="submit">Submit</button>
</form>
This is my controller. the name of my controller is DealerController from where i storing data in users table
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'email' => 'required',
'password' => 'required',
'name_of_firm' => 'required',
'address' => 'required',
'number' => 'required',
]);
$user = User::create([
'name' => $request->input('name'),
'email' => $request->input('email'),
'password' => Hash::make($request->input('password')),
'name_of_firm' => $request->input('name_of_firm'),
'address' => $request->input('address'),
'number' => $request->input('number'),
]);
return redirect()->route('dealer.index')->withSuccess('done');
}
this is my User model. there are only 3 field that are fillable.
protected $fillable = [
'name',
'email',
'password',
];
This is pic of database. enter image description here
Upvotes: 0
Views: 1145
Reputation: 464
That's because of Laravel mass-assignment and you should add every field you want to fill with input in $fillable
array.
change your fillable array like below:
protected $fillable = [
'name',
'email',
'password',
'name_of_firm',
'address',
'number'
];
Upvotes: 2
Reputation: 2844
If you are using $fillable
try to add the other fields also, but if you don't want to add other fields try to use $guarded
:
$fillable
protected $fillabel = [
'name',
'email',
'password',
'name_of_firm',
'address',
'number'
];
$guarded
protected $guarded = [];
Upvotes: 0
Reputation: 3185
Replace your $fillable to this
protected $guarded = [
'id',
];
It'll resolve the issue
Upvotes: 1