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> </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],
],
],
我正在使用 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> </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],
],
],