CakePHPでTwitterクローンを作成しようとしています。モデル間にHABTM関係を設定しています(これを正しく行ったかどうかは100%わかりません)。データベースに3つのテーブルがあります。
- ユーザー(ID、ユーザー名、パスワード)
- ツイート(id、tweet_msg、user_id、作成済み)
- 関係(id、user_id、follower_id)
私のモデルは次のように設定されています。
ユーザーモデル:
<?php
class User extends AppModel {
var $name = 'User';
var $hasMany = 'Tweet';
var $hasAndBelongsToMany = array(
'Follower' => array(
'className' => 'Follower',
'joinTable' => 'relationships',
'foreignKey' => 'user_id',
'associationForeignKey' => 'follower_id'
)
);
ツイートモデル:
<?php
class Tweet extends AppModel {
public $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id',
'conditions' => '',
'fields' => '',
'order' => 'Tweet.created DESC'
)
);
}
フォロワーモデル:
<?php
class Follower extends AppModel{
var $name = 'Follower';
var $useTable = 'users';
}
HABTMアソシエーションが正しく設定されていると仮定して、ユーザーがフォローしているユーザーのツイートを取得しようとしていますが、クエリがどのように表示されるかわかりません。私はこれを行うためにいくつかの方法を試しましたが、どれもうまくいきませんでした。ユーザーのフォローしているIDを取得する方法がわからないと思います。私は次のようなことを試みました:$this->User->Follower->find('list');
しかし、私は正しい方向に進んでいるかどうかわかりません。ユーザーがフォローしている人のツイートを取得する方法を教えてもらえますか?よろしくお願いします、ありがとうございます。