0

私は、会社のIT関連の問題に対してチケットタイプのシステムを作成しようとしています。

このチケットシステムは次のように機能するはずです。

  • ユーザーがログオンして送信し、「ITクエリ」
  • クエリは一意のIDで保存され、ユーザーにメールで送信されます。
  • クエリはIT部門に郵送されます。
  • クエリへの応答がログに記録され、ユーザーがクエリを表示すると、これらすべての応答を確認できます。

最後の箇条書きで問題が発生しています。

2つのデータベース(一意のIDがticket_idのit_queriesと外部のIDがticket_idのit_responses)を使用しているため、これを機能させるには、相互に3つのビューが必要です。

私は次のことを念頭に置いています。 私が考えていること

これをどのように達成できますか、またはこれを行うためのより簡単な方法はありますか?

4

2 に答える 2

1

Dipesh が言ったように、物事をより簡単に、より速くするには、テーブルを正しく関連付ける必要があります。また、コントローラー、モデル、ビューだけでなく、データベースの設計にもCakePHP の命名規則を使用することをお勧めします。それはあなたの多くの仕事と頭痛の種を救います。ケーキ焼き機能を利用できます。

それとは別に、異なるビューを使用する意味がわかりません。代わりに要素 (view/eElements/) を使用することもできますが、私はもっと簡単にします。

1 つのコントローラーで複数のモデルを使用できる (そしておそらく使用する) ことを考慮する必要があります。これを言った、あなたのviewアクションはテーブルticketControllerにも呼び出してit_responses、別の配列のデータを取得できます。

例えば:

class TicketsController extends AppController {
    //using the It_response model
    var $uses = array('Ticket' , 'It_response');


    public function view($id){
        $ticketData = $this->Ticket->find('all', array('conditions' => array('Ticket.id' => $id));

        $responsesData = $this->It_response->find('all', array('conditions' => array('It_response.ticket_id' => $id));

        //setting the variables in the ticket view.
        $this->set('ticket', $ticketData);
        $this->set('responses', $responsesData);

    }

とにかく、チケットが応答モデルに正しくリンクされている場合は、応答の配列を含むクエリを 1 つ実行するだけで済みます。

于 2013-02-25T10:21:24.780 に答える
0

これをアーカイブするには、モデル内ですべての正しい関連付けを定義する必要があります。

あなたの質問によると、あなたの ItRequest モデルは hasMany 関係を持つ ItResponse に関連していると思いますので、直接 Response テーブルは Request Table と 1 対 1 の関係を持っています。

したがって、それを定義してから、コントローラー内でクエリを実行し、必要に応じてビューファイル内に表示します。

CakePHP モデルの関連付け (ビュー)

CakePHP モデルの JOINS、欠落しているフィールド

CakePhp で外部キーに関連付けられた 2 つのテーブルからデータを取得する

于 2013-02-25T06:41:42.750 に答える