laravel怎么把一个blade文件转为html文件保存?

laravel怎么把一个php文件转为html文件保存?

比如有个\resources\views\test.blade.php文件:

@extends('layouts.app')

@section('content')
   <div class="container">
      {{ $article->content }}
   </div>
@endsection

我想把它保存为\resources\views\html\test.html,应该怎么做?

阅读 6.2k
3 个回答

保存的是 渲染过的html内容吧?

用 view()->make('test', ['数据带上'])->render(); 把render()的返回的html自己保存起来就行了.

html是一个静态文件,而blade是一个动态模板,后台数据不同,生成的html文件也是不同的。
不知道题主这样做的用意是什么。
如果真的需要保存模板渲染的html文件,我能想到的比较笨的方法就是写一个请求脚本,让后保存请求得到的内容为html就可以了。

这个逻辑没法一下说完,只能简而言之。

  1. 整个的动态模板的原理是用正则匹配去获得每一块的内容,例如@section这种语句,都是先获取到,然后存储至一个数组变量中。

  2. 继承语句,是先对子页面进行解析,把数据解析成变量,存储起来,再去利用@extends中的模板名称,继续递归读取并解析父模板的内容,并将数据存入变量。

  3. 最后,把所有的变量转换为了php语句,写入一个单独的php文件中,并include,就达到了最后的效果。

其实是一个动态生成并运行php文件的过程,若有兴趣可以研究一下源码。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进