Я использую Laravel Auditing Package для отслеживания изменений в моих моделях.Я хочу получить определенный столбец внешнего ключа в своей первичной таблице перед записью событий (создать, обновить, удалить) в таблице аудита.
Существует способ, с помощью которого пакет помогает получить все атрибутывнешний ключ, он называется Audit Transformation, но он генерирует ошибку для меня при отображении подробностей в таблице. Я хочу знать, есть ли какой-либо красноречивый метод модели для получения нужной мне информации о столбце вместо использования getattribute()
метод, который получает всю строку item_id
.
Метод преобразования аудита
public function transformAudit(array $data): array
{
if (Arr::has($data, 'new_values.item_id')) {
$data['old_values']['item_name'] = Item::find($this->getOriginal('item_id'));
$data['new_values']['item_name'] = Item::find($this->getAttribute('item_id'));
}
return $data;
}
Вот как он хранится вEphasis базы данных на item_name
.
{"item_id":"1","qty_received":"2","delivered_by":"John",
"received_by":"Abi","supplier":"Stores","date":"2019-11-26","item_name":{"item_id":1,"item_name":"Toner","colour":"Black","status":"Active",
"created_at":"2018-10-25 17:55:26","updated_at":"2018-10-25 17:55:26"}}
И это схема таблицы элементов
Так что в моем сценарии яВы хотите сохранить item_name
как Toner
, а не всю строку item_id
Любое предложение будет приветствоваться, спасибо заранее.