У меня есть этот код в моем 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'));
}
Сейчас он работает отлично.
Что именно хранится в '$ data-> image'? Не могли бы вы привести пример? И пример желаемого вывода. – arogachev
@arogachev Я использовал 'var_dump()' в отображении того, что находится внутри '$ date-> image'. Вот пример: 'string 'C: /wamp3/www/basicaccounting/web/uploads/dcc.jpg' (length = 48)' – kaynewilder
И какую ссылку вы хотите создать из этой строки? – arogachev