php – 在刀片中使用刀片

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 在刀片中使用刀片脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的数据库中,我保存包含刀片标记的文本,如:
Hello {!! $name !!} how are you today.

我将这个文本传给我的邮件模板,变量$text.在电子邮件中我使用{!! $text !!}获取邮件中的文字.但是当发送电子邮件时会显示{!符号而不是变量(也被传递).
何在数据库中保存刀片标记并将其传递给需要替换的代码{!有什么!!}用正确的变量?

我的邮件功能

$email = $order->email;
$name = $order->billingname;

 //The text From the database.
$emailText = Email::findOrFail(5);
$mailtext = $emailText->text;

Mail::send('emails.tracktrace',['text'=>$mailtext'email' => $email,'name' => $name],function ($m) use ($code,$email,$name) {
    $m->from('info@domain.COM','domain');

    $m->to($email,$name)->subject('Track your package!');
});

更新

我有一个解决办法,我做:

$mailtext = str_replace('[name]',$name,$mailtext);

这样用户可以使用[name],我仍然想知道如何使用刀片.

您无法使用刀片式字符串编译PHP代码,而不首先渲染它.您应该尝试您的自定义渲染类或调用刀片.
public function send()
{
    $emailText = Email::findOrFail(5);
    $name = $order->billingname;
    $mailtext = \Blade::compileString($emailText->text);
    ob_start();
    eval("?> $mailtext <?PHP");
    $mailtext = ob_get_clean();
    Mail::send('emails.tracktrace',[
            'text' => $mailtext,'email' => $email,'name' => $name
        ],$name) {
            $m->from('info@domain.com','domain');
            $m->to($email,$name)->subject('Track your package!');
    });
}

然而,这是不安全的,因为有一个eval. [测试在Laravel 5.1]

另外还有一些很好的书面包,这个具体目的就像StringBladeCompiler v3

脚本宝典总结

以上是脚本宝典为你收集整理的php – 在刀片中使用刀片全部内容,希望文章能够帮你解决php – 在刀片中使用刀片所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。