please help, I get the error: ErrorException: Indirect modification of overloaded property App\Models\Course::$en has no effect in file /Users/myname /Documents/laravel/btw22mongo/app/Http/Controllers/CourseController.php on line 47
`public function updateConfig(Request $req, $_id) { $course = Course::findOrFail($_id); //dd($course->en['config']['coursesuite']);
//dd($req);
//dd($req->coursesuite);
$course->en["config"]["coursesuite"] = $req->coursesuite;
$course->en["config"]["coursename"] = $req->coursename;
$course->en["config"]["courseid"] = $req->courseid;
$course->en["config"]["lms"] = $req->lms;
$course->en["config"]["defaultlang"] = $req->defaultlang;
$result = $course->save();
if($result) {
return ["result"=>"Data is updated successfully"];
} else {
return ["result"=>"update operation failed"];
}
}`
line 47
$course->en["config"]["coursesuite"] = $req->coursesuite;
Hello @jbiddulph
The problem is that you access the $course->en variabele that is delivered with the magic __get() function and directly change it.
What you can do is:
$en = $course->en;
$en["config"]["coursesuite"] = $req->coursesuite;
$en["config"]["coursename"] = $req->coursename;
$en["config"]["courseid"] = $req->courseid;
$en["config"]["lms"] = $req->lms;
$en["config"]["defaultlang"] = $req->defaultlang;
$course->en = $en;
$result = $course->save();
if($result) {
return ["result"=>"Data is updated successfully"];
} else {
return ["result"=>"update operation failed"];
}
With this method you get the variable, update it and then save it.
Sign in to participate in this thread!
The Laravel portal for problem solving, knowledge sharing and community building.
The community