보호 오브젝트 사용자를 어떻게 설정할 수 있습니까? 양식을 작성한 후 현재 사용자 데이터 (예 : 주석 저장과 같은)로 사용자 객체를 추가해야합니다. 나는 그 같은 시도 :symfony2 - 보호 오브젝트에 값 추가
if ($form->isValid()) {
$comment = $form->getData();
$comment->user = $this->contextSecurity->getToken()->getUser();
$this->model->save($comment);
}
을 그리고 난 다음이 오류를
FatalErrorException: Error: Cannot access protected property AppBundle\Entity\Comment::$user in /home/AppBundle/Controller/CommentsController.php line 184
있어 내 의견 엔티티했습니다 : 나는 Symfony2.3을 사용하고
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;
. 어떤 도움을 주시면 감사하겠습니다.
옵션은 public으로 설정하거나 setter ('setUser ($ user)')를 사용하여 컨트롤러에서 호출합니다. 귀하의 반사를 사용할 수 있지만이 상황에 대한 잔인한 것입니다. – qooplmao