laravel render() 方法有什么用?

what is laravel render() method for?

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

鉴于你已经用 Blade 标记了问题,我假设你的意思是在 Laravel 的视图 class.

内渲染

Illuminate\View\View::render() returns 视图的字符串内容。它也用在 class' __toString() 方法中,该方法允许您回显 View 对象。

// example.blade.php
Hello, World!

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

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

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

当你想获取编译后的视图来执行一些后续操作时,你可以自己使用它。如果视图本身导致异常并且在 PHP 解释

中,有时我会显式调用渲染而不是字符串

Fatal error: Method a::__toString() must not throw an exception in /index.php on line 12

在上述情况下调用 render() 会提供更有用的错误消息。

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

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

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

您可以获得 php blade 文件 通过 动态 字符串 形式

像这样

Blade

 <link rel="apple-touch-icon" sizes="60x60" href="{{$url}}/assets/images/favicon/apple-icon-60x60.png">

控制器

$html = view('User::html-file',['url'=>'https://whosebug.com'])->render();

O/P

<link rel="apple-touch-icon" sizes="60x60" href="https://whosebug.com/assets/images/favicon/apple-icon-60x60.png">\r\n

0相对于 ->render() 使用 DomPDF 时,您还可以使用 ->toHtml():

$pdf->loadHtml(\view('folderX.bladeY', $data)->toHtml());