【问题标题】:FatalErrorException: Error: Call to a member function getId() on a non-object inFatalErrorException:错误:在非对象上调用成员函数 getId()
【发布时间】: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 请接受我的回答。

标签: php symfony


【解决方案1】:

在来宾用户或未通过身份验证的用户在操作“NewAction”中您将收到此错误。您必须首先检查用户对象是否存在,而不是重定向到其他操作或您是否有逻辑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-05
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多