php - 在 laravel 中生成 View 时如何使 php 变量保持不变?

标签 php laravel view laravel-blade

我尝试从 Controller 生成新的 Blade 文件。 那么它是如何工作的。 我获取主 Blade 文件并尝试从内容生成器中注入(inject)数据。来自 contentbuilder 的数据是正确的,就像我想要的那样,但是主文件中的所有 {{$vars}} 都转换为字符串而不是 {{$vars}} . 例如:

<input type="hidden" id="token" name="_token" value="{{ csrf_token() }}">

变成:

<input type="hidden" id="token" name="_token" value="T4JB7Y1DNdIXsWe4k0AiLUaKtSvoDJwIcSOgGW5e">

我怎样才能避免这种情况?

我试过 ->render() 但结果相同。 我试过包含但结果相同。

新的 Blade 文件就是这样生成的。

$page = PagesDetails::where('uuid',$request->page)->first();

File::put(resource_path('views/front/demotest.blade.php'),
        view('front.defaultpage',["pagecontent" => $request->item,"settings" => $this->settings,"page"=> $page])

我只想保持 phpvars 不变,以便在页面加载时自动调用它。

这样{{$vars}}就会保留在新生成的 Blade 文件中

我是如何解决这个问题的: 因为这里所有的帮助都不完全是我想要的,所以我自己做了一些修改。

首先,数据(从 contentbuilder 接收到的)被保存到一个新的 blade 文件中。 然后我做了一个前置文件来添加默认 Blade 文件的第一部分和所有的 php 变量。 然后我做了一个附加文件来添加默认 Blade 文件的最后一部分。 所以在那之后我有了一个完整的 Blade 文件,就像我用工作的 php 变量手动编写的一样。

最佳答案

使用下一个语法:

<input type="hidden" id="token" name="_token" value="{!! '{{ csrf_token() }}' !!}">

解释:

{!! 'something' !!}

当您使用此语法时,变量不会求值,而是按原样解析。 然后你需要放置你想要的字符串表示。因此引用函数/助手。

阅读 docs 中的“显示未转义的数据” .

关于php - 在 laravel 中生成 View 时如何使 php 变量保持不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55533286/

相关文章:

Laravel Nova 不适用于 Laravel Spark : Unexpected token P in JSON at position 1213

laravel - 响应工厂 Laravel 上不存在 Cookie

php - 如何在 Laravel 中创建模型?

android - 如何在父 View 的触摸监听器中使用 subview 的触摸事件?

javascript - 在 drupal 中单击没有灯箱的画廊(多个 cck 图像)

Swift:将 subview 添加到另一个 subview

javascript - 显示使用 PHP 和 MySQL 创建的 JSON 数据

php - 存储命名空间的类在哪里?

php - Drupal 8 数据库插入中的 fatal error : Call to undefined method,

java - 如何将MySQL数据库中的数据插入到表中显示到Android?