IIN尔康的样本项目,在views目录,我们有一些文件伏后缀PHTML后缀.这两个后缀有什么区别?当我们必须使用Volt并且何时必须使用phtml?请为我解释......
我想重新声明并添加一些方法来帮助Tag.
class MyTags extends \Phalcon\Tag
{
public static function mytag($params)
{
<...>
}
}
Run Code Online (Sandbox Code Playgroud)
在services.php中
$di->set('tag', function() {
return new MyTags();
};
Run Code Online (Sandbox Code Playgroud)
但它只适用于PHP引擎,而不适用于Volt.
{{ mytag() }}
Run Code Online (Sandbox Code Playgroud)
回
Undefined function 'mytag'
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的模板创建宏,如下所示:
{%- macro bField(form, name, attributes) %}
<p class="form-group" ng-class="{has-error: !{{ form.name }}.{{ name }}.$valid}">
{{ form.label(name) }}
{#{% set attributes['class'] = 'form-control' %}#}
{{ form.render(name, attributes) }}
{% include 'forms/validation-messages.volt' %}
</p>
{%- endmacro %}
Run Code Online (Sandbox Code Playgroud)
问题是它在视图根目录中的macros.volt文件中,我不知道如何或在何处包含它,因此它随处可用.我尝试使用包含和部分函数的根布局(index.volt),但仍然无法正常工作.甚至在模板文件中我都没有尝试使用它.我做错了什么,如何解决这个问题?
另一件事是如何在数组中的某个键上设置值.我显然尝试过{% set attributes['class'] = 'form-control' %},但它不起作用.
我们知道,{% include header.volt %}是名字的参考文件header.volt.
如何在伏特模板中动态引用模板文件?
像这样:
{% include variable %}
当变量相等时footer.volt,程序将引用带有名称的文件,footer.volt
当变量相等时index.volt,程序将引用名称为的文件index.volt...
谢谢!
我正试图在伏特中迭代一个模型集合:
{% if model.elements|length > 0 %}
{% for element in model.getElements() %}
{% include "partials/panels/edit-" ~ element.getType() ~ ".volt" %}
{% endfor %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
类型可以是文本或图像.如果我使用上面的代码,我得到错误:
View '/path/to/phalcon/apps/frontend/views/partials/panels/edit-image.volt' was not found in the views directory
我确定该文件存在,因为如果我更改包含,它将起作用:
{% include "partials/panels/edit-image.volt" %}
Run Code Online (Sandbox Code Playgroud)
它也将失败:
{% include "partials/pandels/edit-" ~ "image.volt %}
Run Code Online (Sandbox Code Playgroud)
第一个版本产生错误的原因是什么?(我知道我可以使用ifs ..但是稍后会列出很多元素类型.)
我想使用 volt (Phalcon) 创建一个 URL。
我试过了:
{{ url("order/view/", ["id" :order.id]) }}
Run Code Online (Sandbox Code Playgroud)
但是,这会产生一个 URL,如:
http://localhost/gateway-new/order/view/?id=7
Run Code Online (Sandbox Code Playgroud)
而我希望网址看起来像:
http://localhost/gateway-new/order/view/id/7
Run Code Online (Sandbox Code Playgroud)
知道如何正确执行此操作吗?
好的,我创建了一个多维数组并将其存储在文章中
如果我做
{{ dump(articles) }}
Run Code Online (Sandbox Code Playgroud)
它返回
array(2) {
["Comedy"]=>
array(3) {
[0]=>
string(18) "Comedy Title1"
[1]=>
string(57) "Comedy Title2"
[2]=>
string(41) "Comedy Title3"
}
["Horror"]=>
array(3) {
[0]=>
string(18) "Horror Title1"
[1]=>
string(57) "Horror Title2"
[2]=>
string(41) "Horror Title3"
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想要实现的是循环,打印标题,然后打印每个部分的标题:
**Comedy**
Comedy Title1
Comedy Title2
Comedy Title3
**Horror**
Horror Title1
Horror Title2
Horror Title3
Run Code Online (Sandbox Code Playgroud)
但是我可以毫无问题地访问标题,但似乎无法访问标题。
这是我到目前为止所拥有的
{% for heading in articles %}
{{ heading[loop.index0] }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
这将返回第一个部分的第一个值和第二个部分的第二个值
comedy Title1
horror Title2
Run Code Online (Sandbox Code Playgroud)
如果我做
{% for heading in …Run Code Online (Sandbox Code Playgroud) 在我的伏特模板中:
<div class="container">
{% block conteudo %}
{% endblock %}
</div>
Run Code Online (Sandbox Code Playgroud)
我想通过ajax动态加载该块.我所有的孩子都有阻碍.我怎么能这样做?
谢谢你的帮助.