Задать вопрос
@Msklf

Yii2 GridView Ссылка на внешний ресурс по клику в ячейке?

Как сделать, чтобы при клике на ячейку содержимое передавалось в новую вкладку в адресную строку, где содержимое является адресом ?

Пробовал несколько вариантов:

'ofSite' => [

                    'label' => 'Официальный сайт',
                    'value' => function($data)
                        {
                           return Html::a($data->ofSite, ($data->ofSite), ['target' => '_blank']);
                        },
                    'format' => 'raw',

                ],


И еще один
'ofSite' => [

                        'label' => 'Официальный сайт',
                        'value' => function($data)
                        {
                           $basepath = str_replace('\\', '/', Yii::$app->basePath).'/';
                        $path = str_replace($basepath, '', $data->ofSite);
                        return Html::a($data->ofSite, $path, array('target'=>'_blank'));
                        },
                        'format' => 'raw', 

                ],


В обоих случаях удалось добиться того, что ссылка открывается в новой вкладке и содержимое:
Сайт/содержимое ячейки
Типо если наш сайт называется http://site.com, а данные в ячейке http://values.com, то мы получаем:
http://site.com/http://values.com

Как убрать это значение site.com ?
  • Вопрос задан
  • 1524 просмотра
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
SwoDs
@SwoDs
PHP YII2
Доку читать люди так и не научились

use \yii\helpers\{Html, Url};

Html::a('Линк', 'http://ya.ru/'); // так
Html::a('Линк', Url::to('http://ya.ru/')); // или так
Html::a('Линк', Url::to('http://ya.ru/', 'http')); // или так
Html::a('Линк', Url::to(['http://ya.ru/'], 'http')); // или так
Ответ написан
Комментировать
Много чего написано, но нечего не понятно.
Тут вы генерируете ссылку return Html::a($data->ofSite, ($data->ofSite), ['target' => '_blank']);
что у вас в $data->ofSite? 'values.com'?
что у вас за фреймворк? Yii2?
Ответ написан
Ваш ответ на вопрос

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

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