私は2つのテーブルのメンバーとコメントを持っています。私は正常に彼らにjoing。だから、私はすべてのユーザーのためのすべてのエントリのコレクションを取得することができます。私はそれぞれのユーザーがそれぞれ従うことができる 'フォロワー'というanothewrテーブルを作成する必要があります。したがって、今、私は1人のユーザーからすべてのコメントを得ることができるようにしたいと思います。この新しいテーブルとこの関係を完成させるためにどのようにアプローチするべきかは知らない。doctrine 2 2つの関係からコレクションを取得していますか?
ユーザエンティティ:
namespace Entities\Members;
/**
* @Entity(repositoryClass="\Entities\Member\MembersRepository")
* @Table(name="Members")
* @HasLifecycleCallbacks
*/
class Members extends \Entities\AbstractEntity
{
/**
* @Id @Column(name="id", type="bigint",length=15)
* @GeneratedValue(strategy="AUTO")
*/
protected $id;
/** @Column(name="userid", type="bigint", length=26, nullable=true) */
protected $userid;
/** @Column(name="fname", type="string", length=255,nullable=true) */
protected $fname;
/** @OneToMany(targetEntity="\Entities\Users\Wall", mappedBy="entry", cascade={"persist"}) */
protected $commententries;
public function __construct()
{
$this->commententries = new \Doctrine\Common\Collections\ArrayCollection();
}
}
コメントエンティティ:
namespace Entities\Members;
/**
* @Entity(repositoryClass="\Entities\Member\CommentsRepository")
* @Table(name="comments")
* @HasLifecycleCallbacks
*/
class Comments extends \Entities\AbstractEntity
{
/**
* @Id @Column(name="id", type="bigint",length=15)
* @GeneratedValue(strategy="AUTO")
*/
protected $id;
/** @Column(name="userid", type="bigint", length=26, nullable=true) */
/**
* @ManyToOne(targetEntity="\Entities\Member\Member", cascade={"persist"})
* @JoinColumn(name="userid", referencedColumnName="id")
*/
protected $entry;
}
この作品、私は経由でユーザーからのコメントをすべて取得することができます:私は追加することができますどのように、しかし
$this->repo->findByUserid(3); (userid = 3)
'follow'テーブル(ちょうどtwitterのような)。誰かが他に従うことができるので、私はユーザーID-3のコメントだけでなく、彼が従っている他のユーザーからの他のコメントも見ることができるでしょうか?
テーブルと呼ばれる:フォロワー:おそらく
namespace Entities\Members;
/**
* @Entity(repositoryClass="\Entities\Member\FollowersRepository")
* @Table(name="followers")
* @HasLifecycleCallbacks
*/
class Followers extends \Entities\AbstractEntity
{
/**
* @Id @Column(name="id", type="bigint",length=15)
* @GeneratedValue(strategy="AUTO")
*/
protected $id;
/** @Column(name="userid", type="bigint", length=26, nullable=true) */
protected ???;
/**
* @Many ???
* @JoinColumn( ???
*/
protected $???;
}
フォロワーからメンバーまでのどのような関係ですか? –
Followersエンティティでは、Membersに対してManyToMany関係を作成します。 1人のフォロワーに複数のメンバーをフォローさせ、1人のメンバーに複数のフォロワーを持たせることが必要なのかもしれません。 参照:私はそれを行う場合http://www.doctrine-project.org/docs/orm/2.0/en/reference/association-mapping.html#many-to-many-unidirectional – AquaRobin
しかし、それが作成されますmanay-manyテーブル。メンバーとフォロワーの間のリンクを示しています。だから、どうすればうまくいくのですか?このリンクされたテーブルにコメントを追加するにはどうしたらいいですか? –