如何动态地在刀片视图中插入代码

时间:2016-02-11 09:08:13

标签: php laravel laravel-5 laravel-5.1 laravel-blade

使用laravel 5.1,我可以动态地将自定义代码插入刀片视图吗? 例如,我有view.blade.php

<html>
<head>
    <title>App Name - @yield('title')</title>
</head>
<body>
    @section('sidebar')
        This is the master sidebar.
    @show

    <div class="container">
        @yield('content')
        // Here, I want to insert a code dynamically, for example :
        <div> <p> something </p> </div>
    </div>
</body>

那么,有没有一种好方法可以在控制器中做这样的事情:

$customCode = "<div> <p> something </p> </div>";
$content = (string) $view;
//For example I want to insert this code into view file on line 11
updateContent($content, $customCode, $line_position_in_view);    

3 个答案:

答案 0 :(得分:2)

以下是jQuery的代码:

您的HTML文件或查看文件

<div class="container">
        @yield('content')
        // Here, I want insert a code dynamically, for example :
        <div> <p> something </p> </div>
    </div>

$.post("test.php",{},function (data){
     $(".container").append(data);
});

注意:如果您想使用控制器功能,请使用正确的路径更改test.php功能名称。

test.php文件或控制器功能

<?php
echo "<div> <p> something </p> </div>";
exit;
?>

答案 1 :(得分:0)

您不应该只在控制器中放置html和javascript,以便将其转储到刀片视图中。这违背了关注点。

您应该只创建一个主布局,并在您创建的其他页面上扩展此主布局。这样您就可以动态调整主布局页面的内容。

当然,您永远不应该将PHP功能混合到刀片视图中。在控制器中运行php功能,将其放入变量并将其传递给您的视图以供使用。

答案 2 :(得分:0)

例如,假设您不想插入类似的内容

 {{$user->name}}

,但样式更多的html代码块显示了相同的字符串, 通过引导程序4说出来。那么您必须为该名称分配一个字符串,如

$user->update(['name' => '<span class="badge badge-success">SHILPILDOQ</span>']);

并且最终,对于刀片文件,您现在有了一点更改:

{!! $user->name !!}