Вызов неопределенного метода Illuminate \ Database \ Query \ Builder :: save ()

Я пытаюсь вызвать метод save () Eloquent в существующей записи, но получаю ошибку из Query Builder от Illuminate.

Следуя документации на веб-сайте Laravel по адресу http://laravel.com/docs/eloquent#insert-update-delete для обновления извлеченной модели, а также смотрите здесь пример: Laravel Eloquent ORM save: update vs create , мой код похоже, соответствует ожидаемому соглашению, но вместо этого я получаю ошибку, упомянутую в заголовке этого сообщения.

$this->employee = Employee::where('login', $login); $this->employee->first_name = 'John'; $this->employee->last_name = 'Doe'; $this->employee->save(); 

Класс Employee расширяет Eloquent, и если я создаю новый экземпляр модели, а затем устанавливаю некоторые атрибуты, а затем вызываю метод save (), он отлично выполняет инструкции insert. Что мне не хватает?

Очевидно, метод ->get() не будет работать с методом Eloquent's ->save() и вы должны использовать ->first() вместо этого.

Правильно: $this->employee = Employee::where('login', $login)->first();

Неверно: $this->employee = Employee::where('login', $login)->get();

См. http://laravel.io/forum/06-04-2014-symfony-component-debug-exception-fatalerrorexception-call-to-undefined-method-illuminatedatabaseeloquentcollectionsave для дополнительной справки.

вы должны получить свою модель после того, как задано -> где

 $this->employee = Employee::where('login', $login)->get(); 

или

 $this->employee = Employee::where('login', $login)->first(); 

если вы не сделаете так, чтобы ваш объект $ this-> employee был бы одним, и вы не могли бы использовать -> save ()