Laravel: wykonuje pewne zadanie przy każdym wstawianiu / aktualizacji podczas korzystania z Konstruktora zapytań lub Eloquent ORM

Problem

Chciałbym automatycznie dodaćcreated_by imodified_by pola do każdej wstawki / aktualizacji do tabeli bazy danych w Laravel 4, niezależnie od tego, czy używam Eloquent lub Query Builder. Jednak nie wszystkie moje tabele mają te pola, więc każde rozwiązanie będzie musiało sprawdzić te kolumny przed dodaniem.

Próba rozwiązania

RozszerzyłemIlluminate\Database\Eloquent\Model klasa i napisał metodę nadpisywaniasave() w celu dodania dodatkowych pól metadanych dla każdego zapisanego rekordu.

Jest to w porządku, z wyjątkiem tego, że jeśli wykonam wstawkę za pomocą Konstruktora zapytań, to jest to pomijane. Patrząc naModel wygląda na to, że operacje bazy danych są faktycznie wykonywane za pomocą kreatora zapytań.

Spojrzałem naIlluminate\Database\Query\Builder model i wygląda na to, że mógłbym prawdopodobnie napisać metodę nadpisywaniainsert() iupdate().

Czy jest to rozsądny sposób na wykonanie jakiegoś zadania przy każdej wkładce / aktualizacji, czy też wpadnę w kłopoty później?

questionAnswers(5)

yourAnswerToTheQuestion