我该如何解决
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;
}
答案 0 :(得分:1)
你这是在说:
$menu = $repository->findAll();
永远不会是你的实体的实例,因为findAll()
方法从db返回给定表中的所有对象,所以这将是你的实体数组 - 这是你的错误 - 你应该查询一个对象,不是所有的对象。
所以,要么:
$menuItems = $repository->findAll();
$menu = $menuItems[0];
if ($menu->getDateTime() (...) )
或
$menu = $repository->findOneBy($criteriaArray);
if ($menu->getDateTime() (...) )