つまり、2つのテーブルがあります。履歴とユーザー。次のようなデータを表示する必要があります。
ID | ユーザー名 | 最後に作成された投稿 | 最初に作成された投稿
id と username のデータは users テーブルからのもので、最後に作成された投稿データと最初に作成された投稿データは履歴からのものです。すべてのユーザー、最後に作成された投稿、および最初に作成された投稿を表示する必要があります。コントローラーとビューの作成を手伝ってください
つまり、2つのテーブルがあります。履歴とユーザー。次のようなデータを表示する必要があります。
id と username のデータは users テーブルからのもので、最後に作成された投稿データと最初に作成された投稿データは履歴からのものです。すべてのユーザー、最後に作成された投稿、および最初に作成された投稿を表示する必要があります。コントローラーとビューの作成を手伝ってください
以下で試してみてください。
<?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'
)
));
?>
'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;
}
.....
}