簡體   English   中英

更新模型 Laravel 時如何獲取原始訪問器數據?

[英]How to get original accessor data when update Model Laravel?

我想在更新實例時將數據前后寫入日志表。

我通過getOriginal()方法獲取 beforeUpdate(original) 數據,但我不知道如何獲取與原始數據相關的數據。

前任:

campaigns具有字段campaign_status_id

我有一個訪問器是getCampaignStatusNameAttribute() ,此方法將獲取campaigns表和campaign_status表之間的關系並返回campaign_status_name

如果我更新活動狀態並調用getCampaignStatusNameAttribute() ,我只會收到更新的數據。 當然,我可以寫一個自定義的功能,並通過campaign_status_id作為一個參數去獲取數據,但我想知道有什么更好的解決方案。

獲得原始訪問器的任何解決方案?

為了獲得原始數據,您使用

$model->getAttributes()['column_name']

或這個

Arr::get($model->getAttributes(), 'column_name', 'default_value_here') // default value can be null

如果您使用Arr方式,請確保在頂部導入此Arr幫助程序外觀。 Arr方式的優點是,即使該值不存在,它也不會返回任何錯誤,並且如果該值不存在,您總是可以返回一些默認值。

如果最近被調用, getOriginal將返回修改后的內容。 這並不是最可靠的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM