Задать вопрос
Ответы пользователя по тегу PHP
  • Как задать метод POST ссылке в классе Menu yii2?

    @sehav
    Код неправильный
    После первой замены атрибутов, все остальные ссылки пойдут с этим атрибутом

    Мое решение
    <?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)
        {
            $template = ArrayHelper::getValue($item, 'template', $this->linkTemplate);
            $replace=[
                '{label}' => $item['label'],
                '{attr}'=>'',
                '{url}'=>''
            ];
    
            if (isset($item['url'])) {
                $replace['{url}']=Html::encode(Url::to($item['url']));
            }
    
            if (isset($item['linkOptions'])) {
                $replace['{attr}']=$item['linkOptions'];
            }
    
            return strtr($template, $replace);
        }
    }


    Есть возможность добавить еще какие-либо атрибуты, классы например
    Ответ написан
    Комментировать