I am new to Laravel. I’m simply trying to update a full row of mysql table. Data are being sent from a form. I only get to have only 2 records updated and the rest go NULL. I am sure that the fields names from Controller are matching input fields names in the form, also in the mysql table. I also made sure that fields listed in “fillable” method in the model.
In the controller tried:
JavaScript
x
public function approve($id, Request $request)
{
$name = $request->input('name');
$mark = $request->input('mark');
$email = $request->input('email');
$dob = date('Y-m-d H:i:s', strtotime($request->input('dob')));
$country = $request->input('country');
Certificate::where('id', '=', $id)
->update([
'mark' => $mark,
'name' => $name,
'dob' => $dob,
'country' => $country
]);
}
I also tried
JavaScript
$query = DB::update("UPDATE certificates SET name='$name', mark='$mark', dob='$dob', country='$country' WHERE id='$id'");
Plz let me know what I might be doing wrong. Thank you
Advertisement
Answer
use DB facade, I was having an error similar to this, so this is what I used
JavaScript
use IlluminateSupportFacadesDB;
DB::table('certificates')
->where('id', $id)
->update([
'mark' => $request->mark,
'name' => $request->name,
'email' => $request->email,
'dob' => $request->dob,
'country' => $request->country
]);