2017-03-28 6 views
0

私はLaravelアプリケーションを作成していますが、CRUDメソッドを備えたコントローラがありますが、レポートを表示する必要があります。「レポート」というコントローラを作成する必要があるかどうか、または各レポート関数を内部に配置する必要があるかどうかはわかりませんコントローラ:報告書があれば、Laravelのコントローラの内容をどのように整理できますか?

  1. まずオプション:

    • コントローラ/ ProductController.php
      • 機能(作成、読み取り、編集、更新、削除)
    • コントローラ/ CategoryController.php
      • 機能(作成、読み取り、編集、更新、削除)
    • コントローラ/ ReportController.php
      • 機能(TopProducts、TopCategories)
  2. 番目のオプション:

    • コントローラ/ ProductController.php
      • 機能(作成、読み取り、編集、更新、削除、TopProducts)
    • コントローラ/ CategoryController.php
      • 関数(作成、読み取り、編集、更新、削除、トップカテゴリ)

私はどのオプションが最適か、自分の選択肢であるかを教えてください。おかげさまで

+0

いずれにしても問題ありません。 –

+0

あなたは 'Controllers/ProductReportController.php'、' Controllers/CategoryReportController.php'などの名前でコントローラを編成できます。 – mrabbani

+0

私のプロジェクトには50以上のテーブルがあり、私たちは3人の開発者。 – Developer933

答えて

0

私はあなたのコードがより明確でより分離されるので、最初のオプションを実行するべきだと思います。

このようにして、異なるテーブルからさらにレポートを作成する場合は、1つのコントローラ内にすべてのレポートが作成されます。

DRYの原則に従って、他のコントローラですでに定義されているクエリを使用している場合は、オプション1を使用することをお勧めします。

+0

あなたの助言をお寄せいただきありがとうございます。これらはいくつかの例です。私たちは50以上のテーブルを扱う必要があり、私たちは3人の開発者です。最初の選択肢は私たちのプロジェクトのための最良の選択だと思いますか?別の考えがあるなら、私は感謝するでしょう。 – Developer933

+0

多くのレポートを作成すると思われる場合は、より多くのコントローラを作成することをお勧めします。これらのレポートに対してクエリを再利用できる場合は、同じコントローラに配置する必要があります。たとえば、table1とtable2がいくつかのクエリを共有している場合は、コードを再利用できるように、それらを同じコントローラに配置することをお勧めします。お役に立てれば! – suecarmol

関連する問題