Laravel: executando alguma tarefa em cada inserção / atualização ao usar o Query Builder ou o Eloquent ORM

O problema

Eu gostaria de adicionar automaticamentecreated_by emodified_by campos para cada inserção / atualização em uma tabela de banco de dados no Laravel 4, independentemente de eu estar usando o Eloquent ou o Query Builder. No entanto, nem todas as minhas tabelas têm esses campos, portanto, qualquer solução terá que verificar se essas colunas existem antes de adicionar.

Tentativa de Solução

Eu estendi oIlluminate\Database\Eloquent\Model classe e escrito um método de substituiçãosave() para adicionar alguns campos de metadados adicionais para cada registro salvo.

Isso é bom, exceto que, se eu executar uma inserção usando o Construtor de Consultas, isso será ignorado. Olhando para oModel classe parece que as operações do banco de dados são realmente feitas usando o construtor de consulta.

Eu dei uma olhada noIlluminate\Database\Query\Builder modelo e parece que eu provavelmente poderia escrever métodos de substituição parainsert() eupdate().

Esta é uma maneira sensata de executar alguma tarefa para cada inserção / atualização ou terei problemas mais tarde?

questionAnswers(5)

yourAnswerToTheQuestion