on_click
@on_click

Как правильно вызвать виджет со следующими данными в yupe?

Приветствую, с yii только начинаю знакомится, но подозреваю, что вопрос не особо умный, прошу отнестись с пониманием)

На странице архива статей в определенной категории вызывается виджет следующим кодом
$this->widget('application.modules.user.widgets.UsersList', array(
'condition' => $condition, 'type' => $type));


Код виджета:
<?php

class UsersList extends yupe\widgets\YWidget
{
    public $view      = 'main';
    public $condition = array();
    public $type      = "professional";

    public function run()
    {

        $id = $this->getId();

        if ($this->type == "professional") {
            $users = User::model()->professionals();
        }
        elseif ($this->type == "company") {
            $users = User::model()->companies();
        }
        elseif ($this->type == "contest") {
            $users = User::model()->contests();
        }
        else {
            $users = User::model()->organizations();
        }

        $models = $users->with('categories', 'tags')->findAll($this->condition);

        $this->render($this->view, array('models' => $models, 'type' => $this->type, 'id' => $id));
    }
}


в $condition вижу
Array
(
    [together] => 1
    [condition] => categories.id = :cid
    [params] => Array
        (
            [:cid] => 159
        )

    [group] => t.id
    [limit] => 20
    [order] => t.id DESC
)


на главной пытаюсь вызвать с такими же параметрами, но получаю ошибку
Не определено свойство "UsersList.cid" (пробовал различные вариации, это одна из перепробованных)
$this->widget('application.modules.user.widgets.UsersList', array(
'condition' => array(
  'limit' => 12, 
  'together' => true, 
  'group' => 't.id'
), 
'type' =>'contest',
'cid' => 159
));


подскажите пожалуйста, как правильно вызвать виджет с этим условием
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
<?= $this->widget('application.modules.user.widgets.UsersList', array(
    'condition' => array(
        'limit' => 2,
        'together' => true,
        'group' => 't.id',
        'condition' => 'categories.id=":cid"',
        'params' => [':cid' => $cid]
    ),
    'type' =>'contest',
    'view' => 'contest'
)); ?>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы