symfony:错误:在非对象上调用成员函数getDateTime()

时间:2016-01-05 14:31:01

标签: symfony

我该如何解决

  

Error: Call to a member function getDateTime() on a non-object

这是我的代码:

  $repository = $this->getDoctrine()
        ->getRepository('AppBundle\Entity\Menu');
        $today = date_create_from_format('Y-m-d H:i', date('Y-m-d H:i'));

        $menu = $repository->findAll();

        if($menu->getDateTime() == \DateTime('now')){
            $primiOne = $menu->getPrimiOne();
            $primiTwo = $menu->getPrimiTwo();
            $primiThree = $menu->getPrimiThree();
            $secondOne = $menu->getSecondOne();
            $secondTwo = $menu->getSecondTwo();
            $secondThree = $menu->getSecondThree();
            $sideOne = $menu->getSideOne();
            $sideTwo = $menu->getSideTwo();
            $sideThree = $menu->getSideThree();

,实体是:

 /**
 * @var \DateTime
 *
 * @ORM\Column(name="date_time", type="string")
 */
private $dateTime;
/**
 * Set dateTime
 *
 * @param string $dateTime
 *
 * @return Menu
 */
public function setDateTime($dateTime)
{
    $this->dateTime = $dateTime;

    return $this;
}

/**
 * Get dateTime
 *
 * @return string
 */
public function getDateTime()
{
    return $this->dateTime;
}

1 个答案:

答案 0 :(得分:1)

你这是在说:

$menu = $repository->findAll();

永远不会是你的实体的实例,因为findAll()方法从db返回给定表中的所有对象,所以这将是你的实体数组 - 这是你的错误 - 你应该查询一个对象,不是所有的对象。

所以,要么:

$menuItems = $repository->findAll();
$menu = $menuItems[0];
if ($menu->getDateTime() (...) )

$menu = $repository->findOneBy($criteriaArray);
if ($menu->getDateTime() (...) )