我正在尝试在Laravel 5.6.3中使用Parsedown。据我所知,作曲家的包裹被自动加载到Laravel中,因此我应该能够做类似的事情:
{{ Parsedown('## Hello World!') }}
但是,当我尝试时,我会得到:
致电未定义的函数parsedown((。
因此,我尝试创建一个带有以下内容的parsedown对象:
{{ $parsedown = new Parsedown() }}
但是我得到
htmlspecialchars((期望参数1为字符串,对象给定
起初,我认为这与Laravel的自动加载器有关,但是当我从Vlucas/dotenv请求某些内容时,我会得到我期望的结果:
<p>{{ getenv('APP_NAME') }}</p>
输出Laravel
。
我不确定我要去哪里。我在Laravel文档中找不到任何东西来帮助我。
编辑
@alexeymezenin的答案是正确的,它回答了我最初的问题。但是,它不允许我的降级。以下两行是正确的,并允许施法渲染:
@php($parsedown = new Parsedown())
<?= $parsedown->text('Hello _Parsedown_!'); ?>
看来,刀片模板引擎在回荡解放的情况下存在问题。添加了此编辑以帮助其他用户与我自己相同的问题。
{{}}
将通过Blade Engine渲染到echo
。因此,更改此:
{{ $parsedown = new Parsedown() }}
to:
@php($parsedown = new Parsedown())
或:
@php
$parsedown = new Parsedown();
@endphp
或:
<?php $parsedown = new Parsedown(); ?>
您是否使用作曲家安装了parsedown/laravel
?这应该解决您的问题,如https://github.com/parsedown/laravel