【发布时间】:2019-08-27 05:36:06
【问题描述】:
我尝试从控制器生成新的刀片文件。
那么它是如何工作的。
我获取主刀片文件并尝试从 contentbuilder 注入数据。来自内容构建器的数据是正确的,就像我想要的那样,但是主文件中的所有{{$vars}} 都转换为字符串而不是{{$vars}}。
例如:
<input type="hidden" id="token" name="_token" value="{{ csrf_token() }}">
变成:
<input type="hidden" id="token" name="_token" value="T4JB7Y1DNdIXsWe4k0AiLUaKtSvoDJwIcSOgGW5e">
我怎样才能避免这种情况?
我尝试过使用->render(),但结果相同。
我尝试过包含但结果相同。
这就是新刀片文件的生成方式。
$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}} 留在新生成的刀片文件中
我是如何解决这个问题的: 因为这里的所有帮助都不是我想要的,所以我自己做了一些修改。
首先将数据(从内容构建器接收)保存到一个新的刀片文件中。 然后我做了一个前置文件来添加默认刀片文件的第一部分以及所有 php 变量。 然后我做了一个附加文件来添加默认刀片文件的最后一部分。 所以在那之后我有了一个完整的刀片文件,就像我用工作 php vars 手动编写的一样。
【问题讨论】:
-
试试
value="{!! '{{ csrf_token() }}' !!}"。 -
这就是诀窍!谢谢!!!
-
@Tpojka 以及如何为此类变量修复它:{!! SEO::generate() !!}
-
加上引号。我在下面写了答案。
-
你必须把它放在花括号里,就像你期望看到的那样:
{!! '{{ SEO::generate() }}' !!}
标签: php laravel view laravel-blade