chupacabramiamor
@chupacabramiamor
Инженегр-программист

Не работают события eloquent в laravel 4.2. Что я делаю не так?

Разбираюсь с этим фреймворком.
Из кучи методичек взял решение и под копирку вставил в модель следующие строки для обработки событий модели:

public static function boot() {

		parent::boot();

		static::creating(function($model) {
			$model->firm_hash = md5(str_random(25));
			return true;
		});
		
		static::updating(function($model){
			$model->firm_colors = 'ddddddddd';
		});
	}


В роутах имеем следующее:
Route::get('/test/update-firm-colors/{firm_id}', function($firm_id){
	$firm = BusinessFirm::find($firm_id);
	$firm->firm_colors = str_random(6); // Для теста
	$firm->save();
	return Response::json($firm);
});


В итоге не понятно почему не меняется атрибут firm_colors при обновлении модели, причем при добавлении новой модели static::creating отрабатывает нормально.
  • Вопрос задан
  • 382 просмотра
Решения вопроса 1
chupacabramiamor
@chupacabramiamor Автор вопроса
Инженегр-программист
Заработало и у меня. Скидываю все на отсутствие опыта при работе с Laravel.
А решение банальное и простое. Для тех кто столкнется с этой проблемой, во избежание граблей, просто не добавляйте конструктор в класс модели и все будет аллес гут! :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Denormalization
@Denormalization
Специально скачал L4.2 чтобы проверить - все работает как нужно.
Значит ошибка в другом месте. Нужно проходить весь путь шаг за шагом и смотреть почему не работает. (Хотя 80% что все работает как надо, но вы не туда смотрите).

PS
Зачем использовать 4.2? Он уже давно не актуален.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы