EntityManager#merge()要求参数1为实体对象,给定为NULL


EntityManager#merge() expects parameter 1 to be an entity object, NULL given.

目前我正在完成计算机科学的学位,正在学习英语。

从Symfony3中的会话对象获取名为Waiter的实体时遇到问题。

    $em = $this->getDoctrine()->getManager();
    $session = $this->get('Session'); 
    $waiter = $em->merge($session->get('waiter'));
    return $this->render('default/waitermngr.html.twig',array('admin'=>$waiter));

此代码返回错误EntityManager#merge()要求参数1为实体对象,给定NULL。

但是$session对象不为空,因为return new Response ((string)print_r($session));返回:

Symfony''Component''HttpFoundation''Session''Session对象[storageKey:Symfony''Component''HttpFoundation''Session''Attribute''attributes:AttributeBag:private]=>_sf2_attributes[attributes:protect]=>Array([admin]=>AppBundle''Entity''Waiter对象([idwater:protected]=>21[loginwaiter:protect]=>admin[passwdwaiter:pested]=>81dc9bdb52d04dc20036dbd8313ed055)[Flash]=>Symfony''Cmponent''HttpFoundations''Flash''FlashBag对象([名称:Symfony''Component''HttpFoundation''Session''Flash''FlashBag:private]=>闪烁[闪烁:Symfony ''Component ''HttpFoundations''Session''Flash ''FlashBag:private]=>数组()[storageKey:Symfony''Cmponent''HttpFoundary''Session''Flash ''Flash巴格:private=>_sf2_Flash))[startd:protected]=>1[closed:protected]=>[saveHandler:protected]=>Symfony''Component''HttpFoundation''Session''Storage''Proxy''SessionHandlerProxy对象([handler:protected]=>Symfony''coomponent''WttpFoundation''Ssession''Storage''handler''NativeFileSessionHandler对象()[wrapper:protected]=>1[saveHandlerName:protected]=]文件)[metadataBag:protect]=>Symfony/Coomponent'' HttpFoundation'' Session ''Storage''metadataBag对象([名称:Symfony''Component''HttpFoundation''Session''Storage''MetadataBag:private]=>__metadata[storageKey:Symfony''Cmponent''HttpFoundation ''Session''Store''MetadataBag:private]=>_sf2_meta[meta:protected]=>数组([u]=>1470214147[c]=>1470208976[l]=>0)[上次使用:Symfony ''Component ''HttpFoundation '' Session ''Storage/MetadataBag:private]=>1470213715[updateThreshold:Symfony''Component''HttpFoundation''Session''Storage''MetadataBag:private]=>0

提前感谢!

非常感谢ShiraNai7,密钥存储名为"admin"而不是"waiter"

$session->set('admin',$waiter);

现在我使用

$session->get('admin')