0

つまり、2つのテーブルがあります。履歴とユーザー。次のようなデータを表示する必要があります。


ID | ユーザー名 | 最後に作成された投稿 | 最初に作成された投稿

id と username のデータは users テーブルからのもので、最後に作成された投稿データと最初に作成された投稿データは履歴からのものです。すべてのユーザー、最後に作成された投稿、および最初に作成された投稿を表示する必要があります。コントローラーとビューの作成を手伝ってください

4

2 に答える 2

0

以下で試してみてください。

<?php
    $users = $this->User->find('all',array
    (
        'conditions' => array
        (
            //conditions goes here
        ),
        'fields' => array
        (
            'User.id',
            'User.username',
            'History.Lastest created Post',
            'History.First created Post'
        )
    ));
?>
于 2013-02-28T03:56:38.613 に答える
0

'User' テーブルと 'History' テーブルの関係が 1 対 1 で、 Historyテーブルに'user_id' 列があるとします。たとえば、 Historyモデルでそれらの間の関係を指定する必要がある場合があります。

   var $hasOne = array(
     'User' => array(
            'className' => 'User',
            'foreignKey' => 'user_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
       )
    );

次に、joinsこれを行うために実行する必要があります。たとえば、Userモデルのどこかで、次のようなことを試してください。

 class User extends AppModel {    

        ....  

       function getAllUsersHistory{

             $allHistories = $this->find('all', array(
                'joins' => array(
                    'table' => 'history',
                    'alias' => 'HistoryJoin'
                    'type' => 'INNER',
                    'conditions' => array(
                        // your conditions, for example: 'History.user_id' => 'User.id'
                    )
                ),  
                'fields' => array(
                    'User.id', 
                    'User.username', 
                    'History.lastest_created_post', 
                    'History.first_created_post'
                )           
             ));   

          return $allHistories; 

         }

         .....

    }
于 2013-02-28T09:45:54.523 に答える