2015-12-06 47 views
1

我想擴展PageDocument類。我添加以下設置來我app/config/config.ymlsulu extend PageDocument

sulu_document_manager: 
    mapping: 
     page: 
      class: Client\Bundle\WebsiteBundle\Document\PageDocument 
      phpcr_type: sulu:page 

Client\Bundle\WebsiteBundle\Document\PageDocument只是擴展了類Sulu\Bundle\ContentBundle\Document\PageDocument

namespace Client\Bundle\WebsiteBundle\Document; 

use Sulu\Bundle\ContentBundle\Document\PageDocument as BasePageDocument; 

class PageDocument extends BasePageDocument 
{ 
} 

打開在前端的作品頁面,但是編輯在後臺頁面拋出以下錯誤消息預覽區域:

Metadata with class "Sulu\Bundle\ContentBundle\Document\PageDocument" 
not found, known classes: "Client\Bundle\WebsiteBundle\Document 
\PageDocument", "Sulu\Bundle\ContentBundle\Document\HomeDocument", 
"Sulu\Bundle\ContentBundle\Document\RouteDocument", "Sulu\Bundle 
\SnippetBundle\Document\SnippetDocument", "Client\Bundle\WebsiteBundle 
\Document\RegionDocument" 

500 Internal Server Error - MetadataNotFoundException 

堆棧跟蹤

1. in vendor/sulu/document-manager/lib/Metadata/BaseMetadataFactory.php at line 132 - 

//echo '<pre>$class: '; var_dump($class); echo '</pre>'; 
    if (!isset($this->classMap[$class])) { 
     throw new MetadataNotFoundException(sprintf(
      'Metadata with class "%s" not found, known classes: "%s"', 
       $class, implode('", "', array_keys($this->classMap)) 
     )); 

2. at BaseMetadataFactory ->getMetadataForClass ('Sulu\Bundle\ContentBundle\Document\PageDocument') 
in vendor/sulu/document-manager/lib/Metadata/MetadataFactory.php at line 78 + 
3. at MetadataFactory ->getMetadataForClass ('Sulu\Bundle\ContentBundle\Document\PageDocument') 
in vendor/sulu/sulu/src/Sulu/Bundle/DocumentManagerBundle/Bridge/DocumentInspector.php at line 125 + 
4. at DocumentInspector ->getMetadata (object(PageDocument)) 
in vendor/sulu/sulu/src/Sulu/Bundle/DocumentManagerBundle/Bridge/DocumentInspector.php at line 111 + 
5. at DocumentInspector ->getStructureMetadata (object(PageDocument)) 
in vendor/sulu/sulu/src/Sulu/Bundle/DocumentManagerBundle/Bridge/DocumentInspector.php at line 262 + 
6. at DocumentInspector ->getLocalizedUrlsForPage (object(PageDocument)) 
in vendor/sulu/sulu/src/Sulu/Component/Content/Compat/Structure/PageBridge.php at line 35 + 
7. at PageBridge ->getUrls() 
in vendor/sulu/sulu/src/Sulu/Bundle/WebsiteBundle/Resolver/StructureResolver.php at line 65 + 
8. at StructureResolver ->resolve (object(PageBridge)) 
in vendor/sulu/sulu/src/Sulu/Bundle/WebsiteBundle/Resolver/ParameterResolver.php at line 57 + 
9. at ParameterResolver ->resolve (array(), object(AdminRequestAnalyzer), object(PageBridge), true) 
in vendor/sulu/sulu/src/Sulu/Bundle/WebsiteBundle/Controller/WebsiteController.php at line 84 + 
10. at WebsiteController ->getAttributes (array(), object(PageBridge), true) 
in vendor/sulu/sulu/src/Sulu/Bundle/WebsiteBundle/Controller/WebsiteController.php at line 46 + 
11. at WebsiteController ->renderStructure (object(PageBridge), array(), true, false) 
in vendor/sulu/sulu/src/Sulu/Bundle/WebsiteBundle/Controller/DefaultController.php at line 41 + 
12. at DefaultController ->indexAction (object(PageBridge), true, false) 
in vendor/sulu/sulu/src/Sulu/Bundle/ContentBundle/Preview/PreviewRenderer.php at line 92 + 
13. at PreviewRenderer ->render (object(PageBridge), false) 
in vendor/sulu/sulu/src/Sulu/Bundle/ContentBundle/Preview/Preview.php at line 223 + 
14. at Preview ->renderStructure (object(PageBridge), false, null) 
in vendor/sulu/sulu/src/Sulu/Bundle/ContentBundle/Preview/Preview.php at line 212 + 
15. at Preview ->render ('1', '8a7d4c4a-60b4-4ced-9b3b-007e238810ff', 'sulu_io', 'en') 
in vendor/sulu/sulu/src/Sulu/Bundle/ContentBundle/Controller/PreviewController.php at line 57 + 
16. at PreviewController ->renderAction (object(Request), '8a7d4c4a-60b4-4ced-9b3b-007e238810ff') 
17. at call_user_func_array (array(object(PreviewController), 'renderAction'), array(object(Request), '8a7d4c4a-60b4-4ced-9b3b-007e238810ff')) 
in app/bootstrap.php.cache at line 3054 + 
18. at HttpKernel ->handleRaw (object(Request), '1') 
in app/bootstrap.php.cache at line 3016 + 
19. at HttpKernel ->handle (object(Request), '1', true) 
in app/bootstrap.php.cache at line 3165 + 
20. at ContainerAwareHttpKernel ->handle (object(Request), '1', true) 
in app/bootstrap.php.cache at line 2406 + 
21. at Kernel ->handle (object(Request)) 
in web/admin.php at line 44 + 
+0

難道你不能命名拋出的異常嗎?有一些組件處理元數據,很難根據錯誤文本判斷哪個組件正在產生問題。 –

+0

添加了異常名稱和堆棧跟蹤。希望這可以幫助。 – huzi

回答

1

恐怕要告訴你,這種行爲是一個錯誤......我可以跟蹤下來了一點,創造了一個issue on GitHub,你可以在那裏跟蹤進一步的進展。

但是,此錯誤僅影響預覽,而不影響系統的其他部分。