Код: Выделить всё
public $myUid;
public function init() {
parent::init();
$this->myUid = uniqid();
}
public function run() {
// Много кода
return $this->render('widget-template', [
'myUid' => $this->myUid,
// Другие переменные
]);
}
Код: Выделить всё
<?php Pjax::begin(['id' => 'widget-grid']); ?>
<?= $myUid .'<br>'; ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => $gridColumns,
]); ?>
<?php Pjax::end(); ?>
Вопрос: Почему? Разве `init` не должен нести только функцию инициализации и больше не вызываться никогда вообще? Я представлял, что в таком случае должен работать только метод `run`. Почему так происходит?
Дополнительный вопрос: Есть ли в виджете такой метод, который действительно вызывается только раз? Который не дергается при ajax запросах?