мне было интересно, если есть способ, что я могу инициализировать домовладелец с объектом Пользователем FOSUserBundle так, что она содержит пользователь, создавшее сообщениеSymfony 3 получить текущий пользователь внутри объекта
Я хочу, чтобы это сделать внутри конструктора, как показано ниже.
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(name="post")
* @ORM\Entity(repositoryClass="AppBundle\Repository\PostRepository")
*/
class Post
{
/* here are defined some attributs */
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="posts")
* @ORM\JoinColumn(name="owner", referencedColumnName="id")
*/
private $owner;
public function __construct()
{
$this->owner = /* get current user */ ;
}
}
Есть ли способ сделать это, заменив комментарий в конструкторе чем-нибудь?
Спасибо за ваши ответы
Doctrine фактически не использует конструктор, так что нет. Почему бы просто не установить связь между почтой и пользователем? – Cerad
отношение уже существует, когда создается новое сообщение, атрибуты владельца инициализируются подключенным в настоящее время пользователем – paris93
. Итак, все, что вы хотите, это инициализировать владельца, когда сначала создается новый опубликованный? Если это так, оба приведенных ниже ответа действительны.Лично я пошел бы с фабричным подходом, возможно добавив метод create в почтовый репозиторий вместо автономного класса. Но все перечисленные подходы имеют смысл. – Cerad