これがcodeigniterMVCでの私の問題です。
私が3つのモデルを持っていると仮定します:(ユーザー、電子メール、支払い)。誰かが何らかの方法で支払いをした場合、コントローラーは支払い方法モデルを呼び出します。そのメソッドは他のコントローラーからも呼び出すことができます。
そのメソッドは、データベースの挿入と更新を行い、最後にユーザーにメールを送信したいのですが、すでにユーザーIDがありますが、ユーザー名、emailが必要です。これは、usersテーブルから取得してからメールを送信する必要があります。
支払いモデルがユーザーテーブルにアクセスできるのが好きではありません。ユーザーモデルから情報を取得し、メールモデルを使用してメールを送信したいと思います。
通常、私はそれらをコントローラーから呼び出します。つまり、最初に支払いモデルを呼び出して結果を取得し、ユーザーモデルからユーザー情報を取得してから、すべてコントローラーで電子メールモデルを使用します。
しかし、一部のコントローラーでそのモデルのメソッドを実行する必要があるため、これらの行を繰り返す必要があり、それは私のポイントでは正しい側面ではありません。
質問:モデル内で他のモデルを呼び出すか、モデル内で他のモデルテーブルを使用する必要があります(このオプションでは、そのモデルを再利用する場合、他のテーブルが変更された場合は変更する必要があります)、または他の方法はありますか?
主な問題は、それが単なる状況の例であるということではありません。また、それらを実行してコントローラーから呼び出す関数も定義しましたが、それも正しくありません。