我跟随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> </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实体,因为它实际上呈现输入标记文本而不是标记本身。所以我需要弄清楚它不会逃脱输出。
答案 0 :(得分:1)
答案是您必须使用is_safe
选项将该函数添加到config / twigbridge.php。这可以这样做:
/app/config/twigbridge.php
中的
'functions' => [
// Other functions
'method_field' => [
'is_safe' => [true],
],
],