2014-04-10 19 views
41

Trong GridView yii2, tôi có mã này:URL trong yii2 GridView

<?php echo GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'filterModel' => $searchModel, 
    'columns' => [ 
    ['class' => 'yii\grid\SerialColumn'], 
    [ 
      'label'=>'bla', 
      'format' => 'url', 
     'value'=>function ($data) { 
      return Html::url('site/index'); 
     }, 
    ], 
    ['class' => 'yii\grid\ActionColumn'], 
], 
]); ?> 

Theo quan điểm của lưới điện, văn bản đã được tạo ra với địa chỉ url.

/học viện mới/nâng cao/admin/trang web/index

Url đang làm việc tốt, nhưng làm thế nào tôi có thể thiết lập một văn bản cho liên kết?

+0

bạn có thể muốn chấp nhận một trong những câu trả lời như điều đúng ...? ;) – webeno

Trả lời

52

Sử dụng 'format' => 'raw' thay vì 'format' => 'url'.

+0

nếu bạn muốn gửi một số dữ liệu với nó cho phép nói một số nguyên .. và làm thế nào để lấy nó trong bộ điều khiển ?? –

+1

[ \t \t \t \t 'thuộc tính' => 'invoice_id', \t \t \t \t 'định dạng' => 'thô', \t \t \t \t 'giá trị' => function ($ model) { \t \t \t \t \t trở Html :: a ($ model-> invoice_id, [ \t \t \t \t \t \t 'hóa đơn/xem', \t \t \t \t \t \t 'id' => $ model-> invoice_id \t \t \t \t \t], [ 'mục tiêu' => '_blank']); \t \t \t \t}, \t \t \t], –

22

Tôi nhận được giải pháp từ Samdark, cộng tác viên của yii. cần phải sử dụng format => 'thô':

...  
'format' => 'raw', 
    'value'=>function ($data) { 
     return Html::a(Html::encode("View"),'site/index'); 
    }, 

nhu cầu sử dụng Html :: encode() để ecape XSS

7

giải pháp:

<?= GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'filterModel' => $searchModel, 
     'columns' => [ 
     ['class' => 'yii\grid\SerialColumn'], 
      [ 
      'label'=>'bla', 
      'format' => 'raw', 
      'value'=>function ($data) { 
         return Html::a(['site/index']); 
         }, 
      ], 
    ['class' => 'yii\grid\ActionColumn'], 
    ], 
]); ?> 
+0

Một số intentation thực sự sẽ giúp khả năng đọc của bạn câu trả lời – FrederikNS

+1

trở Html :: a ([ 'trang web/index']) không làm việc trong yii2 -> lỗi, hãy thử lại Html :: a ('link', 'site/index'); – Viktors

1

Tôi nghĩ rằng tôi có một giải pháp:

Mã:

'value'=>function ($data) { 
     return Html::url('site/index'); 
    }, 

nên có một chút thay đổi. Hãy nói tên trường của bạn trong mảng 'nước', sau đó mã nên được như thế này:

'value'=>function ($data) { 
     return Html::a($data['country'], ['site/index']); 
    }, 

Vì vậy, thay vì Html :: url tôi đã sử dụng Html :: một giá trị gia tăng và các siêu liên kết như $ data ['country']. Hy vọng điều này sẽ hữu ích.

2

sử dụng định dạng thô

<?php echo GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'filterModel' => $searchModel, 
    'columns' => [ 
    ['class' => 'yii\grid\SerialColumn'], 
    [ 
      'label'=>'url', 
      'format' => 'raw', 
     'value'=>function ($data) { 
      return Html::a('there is your label',['site/index']); 
     }, 
    ], 
    ['class' => 'yii\grid\ActionColumn'], 
], 
]); ?> 
Các vấn đề liên quan