【问题标题】:How to pass html element from Laravel controller to view如何将 html 元素从 Laravel 控制器传递给查看
【发布时间】:2019-04-26 09:52:10
【问题描述】:

我想从控制器传递一个 HTML 元素以在 Laravel 中查看

例如:

$list = '<p>card</card>';

return view('home', ['list' => $list]);

【问题讨论】:

  • 这会破坏 MVC。

标签: html laravel


【解决方案1】:

您从控制器传递的方式是正确的。您可以在视图中将 HTML 呈现为,

{!! $list !!}

参考:https://laravel.com/docs/5.7/blade#displaying-data

小提琴:https://implode.io/XnjDKO

【讨论】:

    【解决方案2】:

    我不知道你是否需要传递更多的 HTML,如果你可以尝试这种方式

    查看:

    <p>card</card>
    <p>card</card>
    <p>card</card>
    More HTML 
    

    控制器:

    $view = view('your.view')->render();
    

    【讨论】:

    • -&gt;render() 帮助我在控制器中通过 tcpdf 生成 pdf 报告。谢谢亲爱的
    【解决方案3】:

    当您将控制器中的数据传递给正在渲染的视图时。当您想在视图模板中显示该数据时。您有两种可能性,第一种是通过将其传递给 htmlspecialchars 方法来转义所有内容,该方法会删除任何 HTML 标记。第二种方法显示没有转义的数据。

    1. 这个会转义 HTML 标签 {{ data_provide_in_the_controller }}

    2. 这将输出变量提供中包含的任何 HTML 标记

      {!! data_provide_in_the_controller!!}

    【讨论】:

      【解决方案4】:

      这是一种方式

            $data = “hello world” ;
            $ value = 15;
      
             Return view(‘hello’, compact(‘data’,’value’);
      
      
      

      【讨论】:

        【解决方案5】:

        控制器:

        $myVariable = '<b>These are bold texts</b>';
        
        return view('home', ['myVariable' => $myVariable ]);
        

        刀片:

        {{ $myVariable }} 输出为:&lt;b&gt;These are bold texts&lt;/b&gt;

        {!! $myVariable !!} 输出为:这些是粗体文本

        另外,如果你控制器上的变量和你想在刀片上传递的变量名相同,你可以像这样使用compact

        return view('home', compact('myVariable'));

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-07-18
          • 2013-08-11
          • 1970-01-01
          • 2016-05-13
          • 1970-01-01
          • 1970-01-01
          • 2023-01-23
          相关资源
          最近更新 更多