Ветка для CakePHP

Я пытаюсь использовать Twig с CakePHP, поэтому установил этот плагин:
https://github.com/predominant/TwigView

А в демо CakePHP мы создаем блог, и я могу использовать его в tpl-файле:

{% for post in posts %}
<tr>
    <td>{{post.Post.id}}</td>
    <td>{{post.Post.title}}</td>
    <td>Edit | Delete</td>
    <td>{{post.Post.created|date("F j, Y")}}</td>
</tr>
{% endfor %}

То, что я не могу заставить работать, это преобразование этого:

<?php
echo $this->Html->link(
    'Add Post', array('controller' => 'posts', 'action'     => 'add')
);
?>

Я пробовал все это, и ни один из них не работает:

{{ html.link("Add Post", {"controller" : "posts", "action" : "add"}) }}
{{ _view.html.link("Add Post", {"controller" : "posts", "action" : "add"}) }}
{{ this.html.link("Add Post", {"controller" : "posts", "action" : "add"}) }}

Я не получаю никаких ошибок, он просто ничем не заменяется. Кто-нибудь знает, как я могу решить эту проблему?


person Get Off My Lawn    schedule 20.02.2013    source источник


Ответы (4)


Вы должны явно объявить помощников в контроллере, чтобы он работал:

public $helpers = array('Html', 'Form');

См. выпуск GitHub #14 и #13 откуда я это взял.

person Alex    schedule 19.08.2013

Возможно, он просто не примет массив в качестве аргумента или не поймет, что такое контроллер или действие. Пытаться:

{{ html.link("Add Post", "/posts/add" }}
person jimiyash    schedule 22.02.2013
comment
Нет, разницы не было - person Get Off My Lawn; 22.02.2013

Это ускользает от вывода? Если это так, чтобы получить полный HTML, используйте RAW

{{ html.link("Add Post", {"controller" : "posts", "action" : "add"})|raw }}
person Will    schedule 30.04.2013

Правильный синтаксис для гиперссылок html helper:

{{ html.link('Add Post', '/posts/add') }}
person José Ramírez    schedule 04.10.2013