Laravel-根据路径获取当前页面或视图的HTML

时间:2019-02-03 03:14:28

标签: laravel laravel-5

我有一个视图mypage.blade.php和一条路线。

网址类似于:https://example.com/mypage/param1/param2。路线使用param1param2,并生成页面。

问题1

在该页面中,我尝试获取其HTML代码。有没有办法做到这一点?我尝试了render(),但没有得到想要的东西。

问题2

在视图中,可以我通过指定的路径获得一个其他视图的HTML代码?

1 个答案:

答案 0 :(得分:2)

您的想法正确。不知道为什么它对您不起作用。

在控制器中,将视图设置为变量:

 $view = view('myBaseView', compact('people', 'places', 'things'));

现在,如果转储呈现的视图变量,则页面的HTML:

dd($view->render());

要通过指定路径并使用内部控制器来获取另一个视图的html,则需要设置某种包装器或catch,以便不将view变量作为视图返回,而是呈现给html如上。您的方法将需要捕获原始控制器发送的任何内容,然后再将其推出视图。

当然,如果您的服务器设置为允许这样做,那么老式的php也可能会获得其他页面的渲染html:

$html = file_get_contents('http://mypage.com/');

您可能会发现方便的其他方法是Laravel section方法。如果您只想呈现页面的一部分,则可以通过从局部视图调用所需的任何部分来实现:

$sections = $view->renderSections(); // returns an associative array of 'content', 'pageHeading' etc

dd($sections['modalContent']); // this will only dump whats in the content section

我不知道您要使用此html做什么,但是如果您希望将其显示在页面上,则在发送它之后(您可能希望返回视图以及变量$的紧凑形式)查看...作为普通变量),请记住使用以下格式:

{!! $view !!}

HTH