Laravel updating Model Fails because of relationship

laravel fill relationship
laravel multiple table relationship
updateexistingpivot
laravel many to many relationship
laravel save hasmany relationship
update or create in laravel
laravel bulk insert with relation
laravel pivot table model

I have a situation where I fetch a model in Laravel. Something like this:

$user = User::with('subscription')->where('id', '=', 123)->first();

If I then later try and do something like this:

$user->firstname = 'John';
$user->save();

I get an SQL error because it says that there is no DB field called "subscription" It seems like the relationship is being treated as a DB field when saving. Is that right? Am I mean to

unset($user->subscription)

before saving?

Is it not possible to update a model if there is a relationship attached? Does it have to be removed before saving?

try this

create new user object

$user = new User;
$user->firstname = 'John';
$user->save();

php - Laravel updating Model Fails because of relationship, try this. create new user object $user = new User; $user->firstname = 'John'; $​user->save();. Stack Overflow Public questions and answers; Update A Model And its Relationships. Laravel: Eloquent how to update a model and related models in one go. 119.

Same code is working for me. What laravel version are you using?

    $psc = Subject::with('group')->where('group_id', 1)->first();

    $psc->group->name = 'PSC';
    $psc->group->save();
    dd($psc->group);

    $psc->name = 'Science';
    $psc->save();
    dd($psc->name);

Laravel updating Model Fails because of relationship, Laravel updating Model Fails because of relationship. laravel update relationship laravel sync laravel create or update relationship laravel many to many sync To have model(s) to call 'fill' on there would have to be a select statement with the where's of that builder to get the record(s), then hydrate model(s), then call update (fill and save) on the model(s).

I found what was causing this. In a previous place in my code I was trying to update the relationship. Accidentally I was assigning the subscription as an attribute to my user object. This was not a Laravel issue.

Detach function doesn't update the model, Laravel saving model with relationship. Posted 6 The saving part obviously fails, because of the orderItems collection that Vue.js passes to the backend. fails? Then there will be successfully edited order but order products won't update. Why isn't it possible to update a relationship for a one-to-many (or one-to-one) relationship from both sides of the relationship? Given this set-up: class Account extends Eloquent { public fun

Laravel saving model with relationship, I believe this is because update is not using the fill() method. I think this is Shouldn't relationships work on Models to begin with? I think it is a  The update method expects an array of column and value pairs representing the columns that should be updated. {note} When issuing a mass update via Eloquent, the saving, saved, updating, and updated model events will not be fired for the updated models. This is because the models are never actually retrieved when issuing a mass update.

Eloquent HasOneOrMany relation update() method not using mass , updateOrCreate on belongsTo relationship not working as expected #29978 one because it can't match based on the id because the foreignkey isn't being new ModelA and then try to updateOrCreate the related model like: I didn't know from which framework it comes: laravel/lumen-framework#967  Updating Dependencies. Update your laravel/framework dependency to 5.5.* in your composer.json file. In addition, you should update your phpunit/phpunit dependency to ~6.0. Next, add the filp/whoops package with version ~2.0 to the require-dev section of your composer.json file.

updateOrCreate on belongsTo relationship not working as expected , If you are unable to generate the query you need via the fluent interface, feel free to use To update a model, you may retrieve it, change an attribute, and use the save method: To force soft deleted models to appear in a result set, use the withTrashed The withTrashed method may be used on a defined relationship: One to many. The next relationship that you can define in Laravel is a one to many relationship. This type of relationship means that one model of type A may be linked to multiple models of type B.

Comments
  • try dd($user) before save() and see if the relationship exists
  • The relationship does exist.
  • You have to add a method to your model called "subscription"
  • I have the method there, that is how I eager load the relationship. The problem is when I try and save the user model and the subscription model is still attached as a relationship
  • But the whole point is that I fetched the user from the DB with a relationship attached. I understand how to update a model without an attached relationship.
  • I would expect that the model would update without any problem. It seems I am getting an SQL error because it is treating the relationship object as a DB field.
  • I fetched the model with a relationship (eager loaded) then I try and update the model.
  • I wrote above, I don't create a new User, I fetched a user from the DB with a subscription object attached as a relationship.
  • using which field you update the record? User::where('condition')->update($user);
  • I am using Laravel 5.5
  • When I try to do something like this I get an SQL error that "group" is an unknown column.