【发布时间】:2019-04-26 09:52:10
【问题描述】:
我想从控制器传递一个 HTML 元素以在 Laravel 中查看
例如:
$list = '<p>card</card>';
return view('home', ['list' => $list]);
【问题讨论】:
-
这会破坏 MVC。
我想从控制器传递一个 HTML 元素以在 Laravel 中查看
例如:
$list = '<p>card</card>';
return view('home', ['list' => $list]);
【问题讨论】:
您从控制器传递的方式是正确的。您可以在视图中将 HTML 呈现为,
{!! $list !!}
【讨论】:
我不知道你是否需要传递更多的 HTML,如果你可以尝试这种方式
查看:
<p>card</card>
<p>card</card>
<p>card</card>
More HTML
控制器:
$view = view('your.view')->render();
【讨论】:
->render() 帮助我在控制器中通过 tcpdf 生成 pdf 报告。谢谢亲爱的
当您将控制器中的数据传递给正在渲染的视图时。当您想在视图模板中显示该数据时。您有两种可能性,第一种是通过将其传递给 htmlspecialchars 方法来转义所有内容,该方法会删除任何 HTML 标记。第二种方法显示没有转义的数据。
这个会转义 HTML 标签
{{ data_provide_in_the_controller }}
这将输出变量提供中包含的任何 HTML 标记
{!! data_provide_in_the_controller!!}
【讨论】:
这是一种方式
$data = “hello world” ;
$ value = 15;
Return view(‘hello’, compact(‘data’,’value’);
【讨论】:
控制器:
$myVariable = '<b>These are bold texts</b>';
return view('home', ['myVariable' => $myVariable ]);
刀片:
{{ $myVariable }} 输出为:<b>These are bold texts</b>
{!! $myVariable !!} 输出为:这些是粗体文本
另外,如果你控制器上的变量和你想在刀片上传递的变量名相同,你可以像这样使用compact:
return view('home', compact('myVariable'));
【讨论】: