2016-07-10 6 views
0

나는 Laravel의 온라인 과정을 진행할 것입니다. 이 과정에서는 markdown을 html로 변환하기 위해 League \ commonmark 패키지를 사용합니다. 패키지는 응용 프로그램에서 사용할 때마다Markdown에서 HTML을 렌더링 할 수 없습니다.

, 내가 얻을 :

Unable to find corresponding renderer for block type League\CommonMark\Block\Element\Document 

응용 프로그램은 변환을 수행하려면 다음 발표자를 사용합니다.

class PagePresenter extends AbstractPresenter 
{ 
    protected $markdown; 

    public function __construct($object, CommonMarkConverter $markdown) 
    { 
    $this->markdown = $markdown; 
    parent::__construct($object); 
    } 

    public function contentHtml() 
    { 
    return $this->markdown->convertToHtml($this->content); 
    } 
} 

누구나 올바른 방향으로 나를 가리킬 수 있습니까?

답변

1

IOC가 CommonMarkConverter, 특히 null 속성으로 인스턴스화 된 환경의 종속성을 해결하기 때문에 이러한 현상이 발생합니다. 서비스 컨테이너에이 방법으로 당신이 결합 할 수 https://github.com/GrahamCampbell/Laravel-Markdown

또는 및 예 :

당신은 아마 Laravel 특정 통합을 사용하여이 문제를 해결 할 수 AppServiceProvider, register 방법

을이 추가

이제 추가하려면 Presenter 생성자에서 CommonMarkConverter을 제거 사용 app('Markdown') :

class PagePresenter extends AbstractPresenter { 
    protected $markdown; 

    public function __construct($object) 
    { 
    $this->markdown = app('Markdown'); 
    parent::__construct($object); 
    } 

    public function contentHtml() 
    { 
    return $this->markdown->convertToHtml($this->content); 
    } 
} 
+0

이 패키지는 리그 출신의 드롭 인 대체품일까요? –

+0

서비스 컨테이너에 문제가 있습니다! 업데이트 된 답변을 확인하십시오! –

+0

나는 당신의 지시를 따랐습니다. 이제 "Classdowndown이 존재하지 않습니다"라는 메시지가 나타납니다. –