自宅で個人用Webアプリケーションを再構築する際に、MVCの厳密な解釈に固執しようとしていますが、いくつかの問題があります。
アプリケーションは、財務追跡アプリケーションです。その月の銀行口座取引のリストである最初のページで立ち往生しています。トランザクションリストは私のモデルです。コントローラーとビューは、この時点で想像できるほど簡単です。
ただし、ページの上部にも2つのボタンがあります。それらは矢印で、1つは前月に対応し、もう1つは翌月のトランザクションリストに対応します。前月/来月のトランザクションがない場合はこれらのボタンを有効にしたくないので、データベースに問い合わせて、各ボタンが実際にどこかにリンクする必要があるかどうかを判断する必要があります。
私が読んだほとんどのことから、可能な限りデータベースアクセスをモデルにカプセル化する必要があり、コントローラーとビューでのデータベースアクセスはほとんどまたはまったくありません。
ただし、これらのボタンは基本的に、データベースに「次の/前の月のトランザクションはありますか?」と尋ねる必要があります。答えは、それらのリンクが無効になっているかどうか、およびユーザーをどこに送るかを決定します。
厳密に言えば、トランザクションが要求された範囲外に存在するかどうかはトランザクションリストモデルの関心を超えているため、それらのロジックをトランザクションリストモデルに入れることは適切ではないようです。
トランザクションが存在するすべての年月の組み合わせに対応する別のモデルを作成することもできると思います。次に、このモデルとトランザクションリストを適切なビューに渡すことができます。
または、no-database-access-outside-the-modelパラダイムから逸脱して、ビューにいくつかのクイックDBクエリをスローする必要があります(結果は本質的にUIの問題であり、ナビゲーションが容易になるため)?
この概念的な問題についてどう思いますか?
ところで、私はフレームワークを使用していません。これは、MVCパターンの要点をよりよく理解するために設計されたペットプロジェクトです。