2015-02-12 2 views
0

У меня есть этот код в моем index.php в моем зрения:Yii 2 GridView Ссылка не работает

<p> 
    <?= Html::a('Create Invoice', ['create'], ['class' => 'btn btn-success']) ?> 
</p> 

<?= GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'filterModel' => $searchModel, 
    'columns' => [ 
     ['class' => 'yii\grid\SerialColumn'],  
     //'inv_id', 
     'cust_name', 
     'currency', 
     'inv_date', 
     'inv_duedate', 
     'prod_name', 
     //'prod_desc', 
     //'prod_quanity', 
     'prod_price', 
     //'prod_tax', 
     //'amount', 
     //'subtotal', 
     'total', 
     [ 
      'attribute' => 'image', 
      'format' => 'raw', 
      'value' => function($data){ 
       //return Html::a($data->image, $data->image, $data->image); 
       return Html::a(Html::encode($data->image),$data->image); 
       //return Html::a($data->image, $data->image, array('target' => '_blank')); 
       //return Html::a(Html::encode('file'),'invoice/index'); 
      } 
     ], 
     //'poso_num', 
     //'subheading', 
     //'footer', 
     //'memo', 

     ['class' => 'yii\grid\ActionColumn'], 
    ], 
]); ?> 

Я уже отображается ссылка/путь конкретного файла, когда я нажимаю его, ничего случается. Когда я нахожу его, я вижу ссылку, например: file:///C:/wamp3/www/basicaccounting/web/pdf/attachment.pdf, в строке состояния (в нижнем левом углу страницы). Я также попробовал щелчок правой кнопкой мыши + Открыть в новой вкладке, URL-адрес - только about:blank.

Я также пробовал каждый из этих комментариев с заявлением о возврате, все тот же результат.

Любые мысли об этом?

Edit:

Моя проблема с моей путь файла, т.е. файла: /// C: /wamp3/www/basicaccounting/web/pdf/attachment.pdf Мой путь в ссылке должен быть относительно корня документа, то есть /basicaccounting/web/pdf/attachment.pdf, а не на диске C.

Так что я пробовал:

'value' => function($data){ 
    $basepath = str_replace('\\', '/', Yii::$app->basePath).'/web/'; 
    $path = str_replace($basepath, '', $data->file); 
    return Html::a($data->file, $path, array('target'=>'_blank')); 
} 

Сейчас он работает отлично.

+0

Что именно хранится в '$ data-> image'? Не могли бы вы привести пример? И пример желаемого вывода. – arogachev

+0

@arogachev Я использовал 'var_dump()' в отображении того, что находится внутри '$ date-> image'. Вот пример: 'string 'C: /wamp3/www/basicaccounting/web/uploads/dcc.jpg' (length = 48)' – kaynewilder

+0

И какую ссылку вы хотите создать из этой строки? – arogachev

ответ

1

Я думаю, что решил свою проблему.

Моя проблема связана с моим файловым пути, то есть файлом: /// C: /wamp3/www/basicaccounting/web/pdf/attachment.pdf Мой путь по ссылке должен быть относительно корня документа ie/basicaccounting /web/pdf/attachment.pdf, а не на диске C.

Так что я пробовал:

'value' => function($data){ 
$basepath = str_replace('\\', '/', Yii::$app->basePath).'/web/'; 
$path = str_replace($basepath, '', $data->file); 
return Html::a($data->file, $path, array('target'=>'_blank')); 

Сейчас он работает отлично. Всем спасибо!

+1

отметьте это как ответ. –

Смежные вопросы