从组件中获取变量

时间:2017-12-19 19:31:10

标签: octobercms

我想从组件中获取变量。 这是我的代码:

<!-- Gallery -->
<div class="galeryWraper">
<div class="row" >
   <h3>{{ galeria1.post.title }} {{ galeria1.post.description }}</h3>
        <div class="col-sm-8">

            {% component 'galeria1' %}

        </div>
      </div>
 </div>

 <!-- End Gallery -->

Galery工作正常。 但是galery头衔和贬义并没有出现。

有人知道为什么吗?

3 个答案:

答案 0 :(得分:2)

必须在该组件中定义

post

public $post = null;

现在在onRun内,或者您需要为其分配一个值

public function onRun() {
    $this->post = 'value-text';
}

然后只有

可用
{{ galeria1.post }} 
// output 'value-text' 

可能是你的post变量直接传递给未分配给组件的页面

例如:

public function onRender()
{
    $this->page['post'] = 'some data';
}

OR

public function onRun()
{
    $this->page['post'] = 'some data';
}

所以此帖子直接分配给页面而不是组件本身。

解决方案:

你可以做这样的事情

public $post= '';
public function onRender OR onRun() // choose method where data is added to page
{
    $this->post = 'some data';
    $this->page['post'] = $this->post;
}

答案 1 :(得分:2)

您可以像这样直接访问这些变量

{{ post.title }} {{ post.description }}

如果它们在您的组件上设置如下

public function onRun(){
    $post = array();
    $post['title'] = 'some-title';
    $post['description'] = 'some-description';
    $this->page['post'] = $post;
}

答案 2 :(得分:0)

要从组件的Twig partials访问该属性,请使用引用Component对象的__SELF__变量:

{{ __SELF__.property('title') }}