【发布时间】:2016-02-09 02:39:01
【问题描述】:
FatalErrorException:错误:在 /home/project/src/Sample/MainBundle/Controller/SampleLogController.php 第 19 行中的非对象上调用成员函数 getId()
我正在使用 Symfony v.2.3,但我今天一直收到此错误。
这是我的控制器:
public function NewAction(Request $request){
$user = $this->getUser()->getId();
//var_dump($user);
$repository = $this->getDoctrine()
->getRepository('SampleMainBundle:SampleLog');
$sample_repository = $repository->findByUser($user);
//...
}
我的实体:
class SampleLog
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var integer
*
* @ORM\Column(name="user", type="integer")
*/
protected $user;
//...
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
public function setUser($user)
{
$this->user = $user;
return $this;
}
/**
* Get userid
*
* @return integer
*/
public function getUser()
{
return $this->user;
}
//...
}
【问题讨论】:
-
如果用户未通过身份验证(即未登录),getUser 不会返回对象。
-
@Cerald 先生,我该怎么做?我将如何解决它:)
-
在访客用户中或未通过身份验证的用户在操作“NewAction”中您将收到此错误。您必须首先检查用户对象是否存在,而不是重定向到其他操作或您是否有逻辑。
-
@SufiyanMalek 感谢您的想法。我只是忘记登录我的测试帐户。我以为我的帐户已登录,但事实并非如此。 :)
-
@Uc.IT_samuel 请接受我的回答。