php – 在刀片中使用刀片
发布时间:2020-12-13 17:29:57 所属栏目:PHP教程 来源:网络整理
导读:在我的数据库中,我保存包含刀片标记的文本,如: Hello {!! $name !!} how are you today. 我将这个文本传给我的电子邮件模板,变量$text.在电子邮件中我使用{!! $text !!}获取邮件中的文字.但是当发送电子邮件时会显示{!符号而不是变量(也被传递). 如何在数
在我的数据库中,我保存包含刀片标记的文本,如:
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |