[英]In Laravel, where should I store this code?
使用Laravel開發Web應用程序時,我不清楚在哪里放置一些代碼。
我有一個類似用戶的模型,該模型從另一個數據庫獲取數據。 我只能在該數據庫中讀取,但這很好。 名稱,城市等字段在數據庫中的存儲非常不一致。 例如,有時候一個名字是全大寫的,而有時候則不是。 因此,我創建了一個formatAsName
方法,該方法當前位於UserController
。
但事實是,每次從數據庫檢索類似用戶的對象時,我都想對某些列(例如名稱和城市)使用此方法。 該代碼應該存儲在控制器中還是屬於模型?
附帶問題:是否有一種方法可以告訴Laravel在執行此模型的查詢時執行回調? 否則,我必須手動編寫一些核心的Model方法。 這是沒有問題的,因為交互作用有限(僅檢索),但是如果支持,那將是最好的方法。
謝謝你的時間。
您也可以在模型中定義方法,並且在laravel中有很多方法,您可以在此處找到更多幫助以獲取代碼指導:- 這里
我知道您已經得到了答案,但是我仍然想給您一些提示。
對於這種情況,一種好的方法是使用存儲庫模式。 這樣,您可以為模型創建Presenter和Transformers並定義如何檢索模型
public function transform(User $model)
{
return [
'name' => strtolower($model->name),
'city' => strtolower($model->city),
'created_at' => Carbon::parse($model->created_at)->format('d-m-Y'),
'updated_at' => Carbon::parse($model->updated_at)->format('d-m-Y'),
];
}
抱歉,我沒有任何資料可發送給您有關此模式的信息,但是您可以在Google上找到它。 您可以檢查我的github並查看此倉庫,其中有一個示例https://github.com/cbcaio/base-laravel
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.