Laravel 获得模板渲染后的 Html 代码

阅读数: 1364 2018年06月30日

我在做自动加载下一页的时候,有2种选择:

第一种:通过 Ajax 获得数据,然后再使用 JS 渲染HTML,在加载某容器尾部。

由于我用的不是 Vue,也没借助任何框架,且对于Js渲染数据不太精通。如果是简单几行数据渲染,且没判断的,还好说。目前碰到的数据显示比较麻烦,还有各种判断。经过几次尝试还是放弃了。


第二种:直接PHP渲染出HTML,通过 AJAX 输出给前端,直接加载到某容器尾部。可在 blade 模板里面进行各种处理。这个也是我一直用的方法,得心应手。


可是 laravel controller 输出都是 View() 对象:

return view('user.profile', ['user' => User::findOrFail($id)]);

可是经过很多次尝试,翻阅资料,都没找到告诉我如何获取渲染后 html 的方法。


后来想起来了 Response() ,研究了下 Response() 发现,他也能渲染模板,且输出的对象里面,可以获得 Html,

具体方法:

$response = response()->view('xx.blade.php', $data);
$html = $response->content();
return response()->json([
    'code' => 200,
    'data' => $html,
    'msg' => 'ok',
]);

这样就能把渲染后的 html 通过JSON格式,传给前端了。

phpriji.cn | 网站地图 | 沪ICP备17015433号-1