Support the ongoing development of Laravel.io →
posted 2 years ago
Laravel

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;

0

can anyone help here please

0
moderator

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.

0

Sign in to participate in this thread!

Eventy

Your banner here too?

Moderators

We'd like to thank these amazing companies for supporting us

Your logo here?

Laravel.io

The Laravel portal for problem solving, knowledge sharing and community building.

© 2025 Laravel.io - All rights reserved.