Laravel与TwigBridge method_field无法正常工作

时间:2016-01-20 16:48:44

标签: php laravel-5 twig laravel-5.2

我跟随laravel 5进行了基本的快速入门。我只是偏离了我使用TwigBridge来允许我使用树枝模板而不是刀片。我试图加载视图时遇到了错误。

Unknown "method_field" function in "/home/vagrant/laravel-test/resources/views/tasks.twig" at line 63.

method_field应该是laravel中可用的默认帮助函数。我不确定为什么twigbridge没有找到它。我有什么遗失的东西我需要将这个功能提供给TwigBridge吗?

修改

这是我的代码:

{% if tasks|length > 0 %}
    <div class="panel panel-default">
        <div class="panel-heading">
            Current Tasks
        </div>

        <div class="panel-body">
            <table class="table table-striped task-table">

                <!-- Table Headings -->
                <thead>
                    <th>Task</th>
                    <th>&nbsp;</th>
                </thead>

                <!-- Table Body -->
                <tbody>
                    {% for task in tasks %}
                        <tr>
                            <!-- Task Name -->
                            <td class="table-text">
                                <div>{{ task.name }}</div>
                            </td>

                            <td>
                                <form action="{{ url('task/'~task.id) }}" method="POST">
                                    {{ csrf_field() }}
                                    {{ method_field('DELETE') }}

                                    <button>Delete Task</button>
                                </form>
                            </td>
                        </tr>
                    {% endfor %}
                </tbody>
            </table>
        </div>
    </div>
{% endif %}

编辑2

我部分想通了。我必须将method_field添加到config/twigbridge.php数组中的functions文件中:

'functions' => [
    'elixir',
    'head',
    'last',
    'method_field',
].

这使它运行该函数,但输出转换为html实体,因为它实际上呈现输入标记文本而不是标记本身。所以我需要弄清楚它不会逃脱输出。

1 个答案:

答案 0 :(得分:1)

答案是您必须使用is_safe选项将该函数添加到config / twigbridge.php。这可以这样做:

/app/config/twigbridge.php

中的

'functions' => [
    // Other functions
    'method_field' => [
        'is_safe' => [true],
    ],
],