• Как задать метод POST ссылке в классе Menu yii2?

    @homsterius
    Столкнулся с такой же проблемой и так как в классе \yii\widgets\Menu необходимый функционал не нашёл, решил просто дописать :)
    Может кому пригодится
    <?php
    
    namespace app\widgets;
    
    use yii\helpers\ArrayHelper;
    use yii\helpers\Html;
    
    class Menu extends \yii\widgets\Menu
    {
        public $linkTemplate = '<a href="{url}"{attr}>{label}</a>';
    
        public $linkOptions = [];
    
        protected function renderItem($item)
        {
            if (isset($item['linkOptions'])) {
                $linkOptions = ArrayHelper::getValue($item, 'linkOptions', []);
    
                $linkOptionsStr = ' ';
                foreach ($linkOptions as $key => $value) {
                    $linkOptionsStr .= $key.'='.$value.' ';
                }
    
                $this->linkTemplate = strtr($this->linkTemplate, [
                    '{attr}' => Html::encode($linkOptionsStr)
                ]);
            } else {
                $this->linkTemplate = strtr($this->linkTemplate, [
                    '{attr}' => ''
                ]);
            }
            return parent::renderItem($item);
        }
    }
    Ответ написан
    1 комментарий