从数据库中提取变量时如何评估Blade变量

时间:2018-10-25 12:15:52

标签: laravel laravel-blade

我正在使用Laravel 5.7,我在数据库中存储了一个变量,并且希望在渲染之前由Blade对其进行评估。

数据库

  

字段:名称,值:{{$ organisername}}

我正在将这些数据提取到这样的Blade模板中。

<h4>1. Registration</h4>
<br />
{{ $job->organisername }}

然后Chrome显示 {{$ organisername}} ,而不是评估 {{$ organisername}}

  

1。注册

     

{{$ organisername}}

如果我在Blade模板中输入{{$ organisername}},则在呈现页面时,该模板将评估为 John

  

1。注册

     

约翰

我正在使用TinyMCE将{{$ organisername}}输入到文本区域,如果有帮助,它将保存到数据库中。

2 个答案:

答案 0 :(得分:0)

如果通过评估意味着要对变量进行某种程度的一致性,请知道此Blade echo语句“ {{}}”已经使用 htmlspecialchars 进行了操作,如文档中所述:

https://laravel.com/docs/5.7/blade#displaying-data

答案 1 :(得分:0)

刀片模板在评估之前会被编译成PHP。本质上,刀片编译:

{{ $job->organisername }}

进入

<?php echo e($job->organisername); ?>

一旦您了解了这一点以及PHP如何评估变量,您就应该能够理解为什么不能在数据库中设置Blade构造并在打印时对其进行评估。

与回显文字字符串基本相同:

<?php echo '{{ $organisiername }}'; ?>

您不希望Blade或PHP对它们在打印时遇到的任何表达式进行评估,这可能非常不安全。

相关问题