Laravelのコントローラーからモデルにアクセスするためのベストプラクティス

Kaizokupuffball

だから基本的に私はこれを可能な限り最善の方法で行う方法について質問があります。そして、そもそもそれを正しく行っているかどうかさえわかりません。

ユーザーがいくつかの設定を更新できる設定ページが表示されました。フォームが送信されると、ご覧のとおり、以下の方法でリクエストが処理されます。

私はProfileモデルだけでなくモデルも持っており、Userそれらの関係も正しく設定されています。

しかし、ご覧のとおり、このメソッドではすべてがコントローラーで実行されます。Profileモデルは一切使用していませんしかし、私はすべきではありませんか?

Profileコントローラーでの作業を減らすためにモデルでどのような方法を作成して使用できますか?

これが不適切な質問である場合は申し訳ありません。

前もって感謝します。

/**
 * @return mixed
 *
 * Process general settings
 */
public function postEditGeneralSettings() {

    // Validate
    $val = Validator::make([
        'show_age'    => Input::get('show_age'),
        'show_gender' => Input::get('show_gender')
    ], [
        'show_age'    => 'sometimes|boolean',
        'show_gender' => 'sometimes|boolean'
    ]);

    if ($val -> fails()) {
        return $this -> backWithErrors($val);
    }

    // Update
    Auth::user() -> profile() -> update([
        'show_age'    => Input::get('show_age'),
        'show_gender' => Input::get('show_gender')
    ]);

    return $this -> backWithSuccess('Innstillingene ble lagret!');

}
Moppo

リポジトリクラスを使用して、コントローラからデータを保存する責任を押し出すことができます。

class UserRepository
{
    //rules for validation, as an alternative you can put them in your User Model
    public static $rules =  [
        'title' => 'required|unique|max:255',
        'body' => 'required',
    ];

    public function updateUserProfile($user, $data)
    {
        $user->profile()->update([
        'show_age'    => $data('show_age'),
        'show_gender' => $data('show_gender')
    ]);        
}

次に、コントローラーからリポジトリーを使用します。

public function postEditGeneralSettings(UserRepository $repo) 
{    
    //an alternative to your validation, using the ValidatesRequests trait of the controller
    //this will give the same results of your validation, but is more concise
    $this->validate( CUserRepository::$rules, Input::all() );

    // Update using the repository
    $repo->update( Auth::user(), Input::all() );

    return $this->backWithSuccess('Innstillingene ble lagret!');   
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ストリーミングデータフローからBigtableにアクセスするためのベストプラクティスは何ですか

分類Dev

コントローラから別のコントローラにリストデータを転送するためのベストプラクティス

分類Dev

Webアプリケーションからデータベースにアクセスするためのベストプラクティス

分類Dev

半信頼のマシンからsshサーバーにアクセスするためのベストプラクティス/安全なアプローチ

分類Dev

コントローラ、スコープ、モデルをネストするためのベストプラクティスは?

分類Dev

Dockerコンテナ内からAIモデルを操作するためのベストプラクティス

分類Dev

コンポーネントからモーダルイベントをトリガーするためのベストプラクティス

分類Dev

明らかにするモジュールパターンでプライベートメソッドにアクセスするためのベストプラクティス

分類Dev

ファクトリ関数からコントローラースコープ変数を設定するためのベストプラクティス?

分類Dev

コントローラクラスLaravelからモデルメソッドにアクセスする

分類Dev

残り火チェックボックス-異なるコントローラーからモデルプロパティにアクセスする

分類Dev

モデルとコントローラーでCoreLocationを使用するためのベストプラクティス

分類Dev

mvc4のコントローラーからモデルクラスにプライベートコンストラクターにアクセスする方法

分類Dev

2台目のハードディスクにSteamをセットアップするためのベストプラクティスは何ですか?

分類Dev

サーバーから受信した画像をモバイルアプリに表示するためのベストプラクティス

分類Dev

コントローラーLaravelのヘルパーからクラスにアクセスする

分類Dev

アクションコントローラーLaravelで応答を定義するためのベストプラクティス

分類Dev

Laravel-セッションとテスト後にアラートを表示するためのベストプラクティス

分類Dev

テーブルからデータをクエリしながらエンティティを管理するためのベストプラクティスは?

分類Dev

X線デーモンを設定するためのベストプラクティスは何ですか?

分類Dev

コントローラからモデルにアクセスする方法は?

分類Dev

コントローラからモデルにアクセスする方法は?

分類Dev

angle.jsのディレクティブでコントローラーからスコープ変数にアクセスする

分類Dev

複雑なネストされたSQLアソシエーションを管理可能なサービスに変換するためのフロントエンドデータモデリングのベストプラクティスは何ですか?

分類Dev

ディレクティブテンプレートからコントローラーの関数にアクセスする方法

分類Dev

ember.jsのコントローラーからモデルにアクセスする

分類Dev

コントローラーからEmberデータストアにアクセスする/モデルフック上の複数のデータ

分類Dev

コントローラ内の別のモデルから変数にアクセスする

分類Dev

サーバーからAndroidアプリケーションにデータを送信するためのベストプラクティス

Related 関連記事

  1. 1

    ストリーミングデータフローからBigtableにアクセスするためのベストプラクティスは何ですか

  2. 2

    コントローラから別のコントローラにリストデータを転送するためのベストプラクティス

  3. 3

    Webアプリケーションからデータベースにアクセスするためのベストプラクティス

  4. 4

    半信頼のマシンからsshサーバーにアクセスするためのベストプラクティス/安全なアプローチ

  5. 5

    コントローラ、スコープ、モデルをネストするためのベストプラクティスは?

  6. 6

    Dockerコンテナ内からAIモデルを操作するためのベストプラクティス

  7. 7

    コンポーネントからモーダルイベントをトリガーするためのベストプラクティス

  8. 8

    明らかにするモジュールパターンでプライベートメソッドにアクセスするためのベストプラクティス

  9. 9

    ファクトリ関数からコントローラースコープ変数を設定するためのベストプラクティス?

  10. 10

    コントローラクラスLaravelからモデルメソッドにアクセスする

  11. 11

    残り火チェックボックス-異なるコントローラーからモデルプロパティにアクセスする

  12. 12

    モデルとコントローラーでCoreLocationを使用するためのベストプラクティス

  13. 13

    mvc4のコントローラーからモデルクラスにプライベートコンストラクターにアクセスする方法

  14. 14

    2台目のハードディスクにSteamをセットアップするためのベストプラクティスは何ですか?

  15. 15

    サーバーから受信した画像をモバイルアプリに表示するためのベストプラクティス

  16. 16

    コントローラーLaravelのヘルパーからクラスにアクセスする

  17. 17

    アクションコントローラーLaravelで応答を定義するためのベストプラクティス

  18. 18

    Laravel-セッションとテスト後にアラートを表示するためのベストプラクティス

  19. 19

    テーブルからデータをクエリしながらエンティティを管理するためのベストプラクティスは?

  20. 20

    X線デーモンを設定するためのベストプラクティスは何ですか?

  21. 21

    コントローラからモデルにアクセスする方法は?

  22. 22

    コントローラからモデルにアクセスする方法は?

  23. 23

    angle.jsのディレクティブでコントローラーからスコープ変数にアクセスする

  24. 24

    複雑なネストされたSQLアソシエーションを管理可能なサービスに変換するためのフロントエンドデータモデリングのベストプラクティスは何ですか?

  25. 25

    ディレクティブテンプレートからコントローラーの関数にアクセスする方法

  26. 26

    ember.jsのコントローラーからモデルにアクセスする

  27. 27

    コントローラーからEmberデータストアにアクセスする/モデルフック上の複数のデータ

  28. 28

    コントローラ内の別のモデルから変数にアクセスする

  29. 29

    サーバーからAndroidアプリケーションにデータを送信するためのベストプラクティス

ホットタグ

アーカイブ