Laravel TwigBridge method_field 不工作

Laravel with TwigBridge method_field not working

我正在使用 laravel 5 进行基本快速入门。我的偏差仅在于我使用 TwigBridge 允许我使用树枝模板而不是 blade。我在尝试加载视图时遇到错误。

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 添加到 functions 数组中的 config/twigbridge.php 文件:

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

这得到了 运行 函数,但是输出被转换为 html 实体,因为它实际上呈现输入标签文本而不是标签本身。所以我需要想办法让它不逃脱输出。

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

/app/config/twigbridge.php

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