当前位置: 首页 > 知识库问答 >
问题:

在字符串中查找刀片变量

傅胡媚
2023-03-14

我正在将一个EmailTemplate变量传递到一个视图中。

此EmailTemplate是一个具有以下属性的模型

(string) 'from_name', (string) 'from_email', (string) 'subject', (string) 'body', (string) 'email_type', (integer) 'status'

用户可以通过站点上的一个表单创建EmailTemplate的新实例,在这里他们可以填充上面的每个字段。

用户填充到表单中的正文的一个示例就是下面这行(是的,用户将向表单中写入HTML代码以存储在EmailTemplate的body属性中):

<strong>Dear {{$user->first_name}} </strong>

我已经创建了一个视图,这将允许用户‘预览’电子邮件。变量emailTemplate和user都传递给视图(对于预览,user=auth::user())

resources/views/emails/preview.blade.php:

{!! $emailtemplate->body !}}

null

即呈现的HTML正是

尊敬的USER-&GTFIRST_NAME}

这里出了什么问题?我想允许用户开发自己的电子邮件模板通过一个表单。但是,我将EmailTemplate和User都传递到视图中,因为EmailTemplate-&GTBody是一个字符串数据类型,Laravel无法识别括号之间刀片变量的使用。

我该怎么解决这个问题?

谢谢你的帮助

共有1个答案

潘璞瑜
2023-03-14

你不能这样做,因为Laravel不会重新渲染刀片输出,以查看和替换任何变量注入的另一个变量!

请查看https://github.com/terreporter/Stringbladecompiler

因此,您应该首先评估自定义模板,例如。

<strong>Dear {{$user->first_name}} </strong>
will become:
<strong>Dear Foo </strong>

计算后的 dear Foo</strong&>/code>将存储在

然后你可以在你的主刀片模板中使用这个:

{!! $evaluatedTemplate !!}

另见:https://github.com/flynsarmy/laravel-db-blade-compiler

 类似资料:
  • 问题内容: 我正在寻找一种在字符串中查找JSON数据的方法。像wordpress简码一样思考它。我认为最好的方法是使用正则表达式。我不想解析JSON,只需查找所有出现的事件。 正则表达式中是否有办法使括号的数量匹配?目前,当我嵌套对象时遇到了这个问题。 演示的快速示例: 结果,我想要两个JSON字符串。谢谢! 问题答案: 从给定的文本中提取JSON字符串 由于您正在寻找一种简单的解决方案,因此可以

  • 问题内容: 我正在使用BASH,但我不知道如何查找子字符串。它一直失败,我有一个字符串(应该是数组吗?) 下面是数据库名称的字符串列表,是答复(这些数据库之一)。以下内容仍然无效: 我也尝试过此方法,但不起作用: 问题答案: LIST=”some string with a substring you want to match” SOURCE=”substring” if echo “$LIST

  • Laravel中的刀片模板是否有类似Smarty的截断修改器? 我知道我可以在模板中写出实际的php,但我正在寻找更好的东西来编写(我们不要讨论整个php是一个模板引擎)。 例如,我在寻找这样的东西: 我知道我可以通过作曲家使用像树枝这样的东西,但我希望Laravel本身具有内置功能。 如果没有,可以像Smarty提供的那样创建自己的可重用修饰符。我喜欢Blade不会过度使用所有语法,但我认为tr

  • 在我的模板中,我有以下内容: 在这篇文章中,我想突出显示字符串中的所有单词 所以我想我创建了一个新的刀片指令: 错误:缺少参数2 发现指令不包含2个参数。我尝试了所有我能找到的解决办法,但没有一个奏效。它们总是以普通字符串的形式返回参数,甚至不传递实际值。 我尝试添加一个助手函数,如下所述:https://stackoverflow.com/a/32430258/928666.不起作用: 错误:未

  • 正在尝试用锚定标记替换所有出现的@提及,到目前为止,我有: 获取以下示例字符串: 到目前为止,所有匹配都正常,但我想忽略单个“@”符号。我曾尝试在“[^@]”之后使用“”和“{2,}”,我认为这将强制执行最低数量的匹配,但它不起作用。

  • 我有一个字符串“1,3,5,7,9,11,12,14”,我想检查该字符串在java中是否包含“12,3,14”。 我的代码:

  • 问题是,我试图这么做,但我检查字符串长度的方法不起作用;我能做些什么来修复它?

  • 问题内容: 我需要在HTML源代码中找到一个单词。我还需要计算发生的次数。我正在尝试使用正则表达式。但它说找到0个匹配项。 我正在使用正则表达式,因为我认为这是最好的方法。如果有更好的方法,请告诉我。 我需要在HTML源代码中找到单词“ hsw.ads”的出现。 我已采取以下步骤。 但是计数是0; 请让我知道您的解决方案。 谢谢。帮助寻求者 问题答案: 您应该尝试一下。 在字符串中传递要搜索的单词