Wie kann ich den Benutzer des geschützten Objekts einstellen? Nach dem Ausfüllen des Formulars muss ich Benutzerobjekt mit aktuellen Benutzerdaten hinzufügen (zum Beispiel Speichern von Kommentaren). Ich habe versucht, so etwas wie das:symfony2 - Wert zum geschützten Objekt hinzufügen
if ($form->isValid()) {
$comment = $form->getData();
$comment->user = $this->contextSecurity->getToken()->getUser();
$this->model->save($comment);
}
Und Ich habe diese Fehler bekam
FatalErrorException: Error: Cannot access protected property AppBundle\Entity\Comment::$user in /home/AppBundle/Controller/CommentsController.php line 184
Hier ist mein Kommentar Einheit:
class Comment
{
/**
* Id.
*
* @ORM\Id
* @ORM\Column(
* type="integer",
* nullable=false,
* options={
* "unsigned" = true
* }
*)
* @ORM\GeneratedValue(strategy="IDENTITY")
*
* @var integer $id
*/
private $id;
/**
* Content.
*
* @ORM\Column(
* name="content",
* type="string",
* length=250,
* nullable=false
*)
* @Assert\NotBlank(groups={"c-default"})
* @Assert\Length(min=3, max=250, groups={"c-default"})
*
* @var string $content
*/
private $content;
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="comments")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
*/
protected $user;
ich Symfony2.3 bin mit. Jede Hilfe wird geschätzt.
die Optionen sind entweder öffentlich zu machen oder einen Setter ('setUser ($ user)') verwenden und dass in Ihrem Controller nennen. Sie könnten die Reflexion verwenden, aber das wäre für diese Situation zu viel. – qooplmao