什么是laravel render()方法?

hik*_*fd 2 php laravel blade

我还没处理渲染方法!!
是刀片模板吗?
我必须动态地在blade.php文件中传递动态数据.

小智 10

Render(),当应用于视图时,将生成相应的原始html并将结果存储在变量中.

我使用渲染的典型原因是:

将页面转换为pdf时(例如使用dompdf,将其传递给loadhtml()),将HTML内容返回到ajax调用


Ben*_*rne 8

鉴于你用Blade标记了这个问题,我认为你的意思是在Laravel的View类中进行渲染.

Illuminate\View\View::render()返回视图的字符串内容.它也可以在类' __toString()方法中使用,它允许您回显View对象.

// example.blade.php
Hello, World!

// SomeController.php
$view = view('example');
echo $view->render(); // Hello, World!
echo $view;  // Hello, World!
Run Code Online (Sandbox Code Playgroud)

Laravel通常会为您处理此问题,即调用渲染或在必要时将对象用作字符串.

Blade的@include('viewname')指令将加载视图文件并在后台调用render方法.

当您希望获取编译视图以执行某些后续操作时,您可以自己使用它.偶尔我会显式调用render而不是字符串,如果视图本身导致异常,并在PHP中解释

致命错误:方法a :: __ toString()不得在第12行的/index.php中引发异常

在上面的例子中调用render()会给出一个更有用的错误消息.


Bib*_*hoo 8

您可以通过字符串形式传递动态值来获取 php 刀片文件

像这样

刀刃

 <link rel="apple-touch-icon" sizes="60x60" href="{{$url}}/assets/images/favicon/apple-icon-60x60.png">
Run Code Online (Sandbox Code Playgroud)

控制器

$html = view('User::html-file',['url'=>'https://stackoverflow.com'])->render();
Run Code Online (Sandbox Code Playgroud)

开/关

<link rel="apple-touch-icon" sizes="60x60" href="https://stackoverflow.com/assets/images/favicon/apple-icon-60x60.png">\r\n
Run Code Online (Sandbox Code Playgroud)