Я пытаюсь смоделировать простую систему комментариев с двумя объектами - Пользователь и Сообщение. Класс User имеет обычные свойства, а класс Post выглядит следующим образом:
class Post
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* User who posted activity
*
* @var User
* @ORM\ManyToOne(targetEntity="Acme\AppBundle\Entity\User")
*/
protected $user;
/**
* @var string $text
*
* @ORM\Column(name="text", type="string", length=255)
*/
private $text;
/**
* @var datetime $timestamp
*
* @ORM\Column(name="timestamp", type="datetime")
*/
private $timestamp;
}
Мне нужно сделать простую ассоциацию - пользователи могут добавлять избранные сообщения. Логично было бы добавить ассоциацию ManyToMany в классе User к Post следующим образом:
@ORM\ManyToMany(targetEntity="Post")
Что затем создаст таблицу сопоставления с user_id и post_id в качестве первичных ключей. Теперь моя проблема в том, что мне нужно добавить свойство отметки времени, чтобы отслеживать, когда пользователю понравилась запись. Одной из возможностей является создание нового объекта "FavouritePost", сопоставление его с классом User и Post с использованием ассоциации ManyToOne и добавление в него свойства отметки времени.
1) Это правильный / единственный способ сделать это в Symfony2?
2) Если я хочу выбрать последние 15 постов и проверить, понравились ли посты зарегистрированному в данный момент пользователю, как я могу написать запрос для этого?
Любая помощь приветствуется, так как я рисую бланк о том, как сделать это через Symfony