php – eloquent's save() method does not work


When I try to use the save() method of eloquent-laravel 5.1, as requested by the documentation, the update is not done in the database.

This is how the documentation asks for:

$flight = App\Flight::find(1);    
$flight->name = 'New Flight Name';    

This is mine:

public function adotado($id) {         
        $animal = Animal::find($id); 
        if (Auth::user()->id == $animal->user_id) {
            $animal->ativo = 0;
            return redirect()->action('UserController@index');
        } else {
            return view('errors.restrito');

I checked with dd($animal) that the data is being pulled normally from the database after find() , including the 'active' attribute is equal to 1. Inside the if , dd($animal->ativo) returns 0, that is, , so far the code is ok. The dd($animal->save()) also returns true and is normally redirected to the index, however the update does not show up in the db.

Any tips? Save me whoever you can. Grateful.


In view, when marking the animal as "adopted" , a modal was displayed asking for confirmation. After removing the modal from the view, save() worked normally. The question that remained for me is: why?

The 'confirm' of the modal displayed the path 'animal/adopted/6' where 6 is the id of the animal. Exactly the same way done without modal. In action, I confirmed that I got the $id both ways, with or without modal. The difference is that one way it didn't change and the other way it did. I'm a beginner and I don't know why this happened, and maybe it's not even an adequate answer, but taking out the modal of the view it solved.

Scroll to Top