我正在浏览Laravel的在线课程。本课程使用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);
}
}
有人能指出我正确的方向吗?
答案 0 :(得分:2)
这是因为IoC正在解析CommonMarkConverter
的依赖关系,特别是使用所有 null 属性实例化的环境。
您可以使用特定于Laravel的集成来解决此问题:https://github.com/GrahamCampbell/Laravel-Markdown
或者您可以通过这种方式绑定和实例到服务容器:
在AppServiceProvider
,register
方法中添加以下内容:
$this->app->singleton('Markdown', function ($app) {
// Obtain a pre-configured Environment with all the CommonMark parsers/renderers ready-to-go
$environment = \League\CommonMark\Environment::createCommonMarkEnvironment();
// Define your configuration:
$config = ['html_input' => 'escape'];
// Create the converter
return new \League\CommonMark\CommonMarkConverter($config, $environment);
});
现在从CommonMarkConverter
构造函数中删除Presenter
添加使用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);
}
}
答案 1 :(得分:0)
您只需在data = data.Join(
_context.TableB,
groupByQuery => groupByQuery.TableAId ,
TableA => TableA.Id,
(groupByQuery, TableAItem) => new
{
TableAId = groupByQuery.Id,
Count = groupByQuery.Count,
TableAItem = TableAItem
}
);
文件中添加一行
config/app.php