Доброго дня. Столкнулся с такой проблемой/ошибкой. Сильно упрощенная версия моего виджета, который должен отрендерить форму:
<?php
declare(strict_types=1);
namespace App\Front\Source\Widget\Data;
use Yiisoft\View\ViewContextInterface;
use Yiisoft\View\WebView;
use Yiisoft\Assets\AssetManager;
use Yiisoft\Widget\Widget;
final class SearchFormWidget extends Widget implements ViewContextInterface
{
private WebView $view;
private AssetManager $assetManager;
public function __construct(WebView $view, AssetManager $assetManager)
{
$this->view = $view;
$this->assetManager = $assetManager;
}
public function getViewPath(): string
{
return __DIR__ . DIRECTORY_SEPARATOR . 'views'; //Вьюха лежит рядом с виджетом
}
protected function run(): string
{
return $this->view->withContext($this)->render('search-form');
}
protected function afterRun(string $result): string
{
// $this->assetManager->register([Какой-то-ассет::class]);
$this->view->registerJs('Какой-то js код' . PHP_EOL);
return parent::afterRun($result);
}
}
Собственно проблема следующая:
Если вызвать виджет так echo SearchFormWidget::widget(); (т.е. WebView попадает через DI), то форма рендерится нормально (метод run), но вызовы registerJs ничего не выводят в лэйауте
Доброго дня. Столкнулся с такой проблемой/ошибкой. Сильно упрощенная версия моего виджета, который должен отрендерить форму:
Собственно проблема следующая:
echo SearchFormWidget::widget();
(т.е. WebView попадает через DI), то форма рендерится нормально (метод run), но вызовыregisterJs
ничего не выводят в лэйаутето игнорируется указанный контекст и вью-файл ищется относительно директории указанной в настройках.
На данный момент закостылил таким образом
соответственно
Заранее благодарен