簡體   English   中英

在Laravel中,我應該將該代碼存儲在哪里?

[英]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.

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