我尝试从控制器生成新的刀片文件。
如此运作。
我获取主刀片文件,并尝试从contentbuilder中注入数据。来自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}}
保留在新生成的刀片文件中
我如何解决这个问题: 因为这里提供的所有帮助都不完全是我想要的,所以我自己做了一些修改。
首先,将数据(从contentbuilder接收)保存到新的刀片文件中。 然后,我做了一个前置文件,以将默认刀片文件的第一部分与所有php vars一起添加。 然后,我做了一个追加文件,以添加默认刀片文件的最后一部分。 因此,在那之后,我有了一个完整的刀片文件,就像我用可工作的php vars手动编写的一样。
答案 0 :(得分:1)
使用下一种语法:
<input type="hidden" id="token" name="_token" value="{!! '{{ csrf_token() }}' !!}">
说明:
{!! 'something' !!}
使用此语法变量将不求值,而是按原样进行解析。 然后,您需要放置要表示的内容的字符串表示形式。因此,在功能/帮助程序上加了引号。
在docs中了解“显示未转义的数据”。
答案 1 :(得分:0)
我不确定是否只能保留var,但是可以使用纯PHP获得视图文件的原始内容,例如:
file_get_contents(resource_path('views/home.blade.php'));