在Laravel 9中有一个新特性,允许内联叶片模板渲染。链接:https://laravel.com/docs/9.x/blade rendering-inline-blade-templates
假设我有一个值存储在数据库中(作为电子邮件的正文),我想从数据库中呈现为电子邮件。
如<p> Dear {{$first_name}} {{$last_name}} </p>
我会用这个;
Blade::render($body, [‘first_name’ => $first_name, ‘last_name’ => $last_name]);
这样我就可以输出类似;
Dear John Doe
在发送的电子邮件正文中。
但是,如果我想使用<p> Dear {{first_name}} {{last_name}} </p>
在我的电子邮件模板中存储在数据库中(没有美元符号,使其成为常量而不是变量)。我如何使用Blade::render()渲染这个常量?
我认为您必须在将输出发送到blade之前操作模板。
Laravel有很多帮助器来做这样的事情。
use IlluminateSupportStr;
$string = '{{first_name}} {{last_name}}';
$replaced = Str::replace('{{', '{{$', $string);
// in $replaced you'll have '{{$first_name}} {{$last_name}}'
以上代码将完成此工作。