2016-03-26 9 views
2

Ich habe heruntergeladen yii2-Grid-Master von hereYii2 Grid-View installieren. Unfähig Nachrichtenquelle für die Kategorie 'kvgrid'

readme.md Nach Ich habe installiert Komponisten und din dies in meiner Konsole zu suchen:

php composer.phar require kartik-v/yii2-grid "@dev" 

jetzt versuche ich es nach docs zu verwenden. Ich habe dies in meiner Sicht:

use kartik\grid\GridView; 
$gridColumns = [ 
    ['class' => 'kartik\grid\SerialColumn'], 
    [ 
     'class' => 'kartik\grid\EditableColumn', 
     'attribute' => 'name', 
     'pageSummary' => 'Page Total', 
     'vAlign'=>'middle', 
     'headerOptions'=>['class'=>'kv-sticky-column'], 
     'contentOptions'=>['class'=>'kv-sticky-column'], 
     'editableOptions'=>['header'=>'Name', 'size'=>'md'] 
    ], 
    [ 
     'attribute'=>'color', 
     'value'=>function ($model, $key, $index, $widget) { 
      return "<span class='badge' style='background-color: {$model->color}'> </span> <code>" . 
       $model->color . '</code>'; 
     }, 
     'filterType'=>GridView::FILTER_COLOR, 
     'vAlign'=>'middle', 
     'format'=>'raw', 
     'width'=>'150px', 
     'noWrap'=>true 
    ], 
    [ 
     'class'=>'kartik\grid\BooleanColumn', 
     'attribute'=>'status', 
     'vAlign'=>'middle', 
    ], 
    [ 
     'class' => 'kartik\grid\ActionColumn', 
     'dropdown' => true, 
     'vAlign'=>'middle', 
     'urlCreator' => function($action, $model, $key, $index) { return '#'; }, 
     'viewOptions'=>['title'=>$viewMsg, 'data-toggle'=>'tooltip'], 
     'updateOptions'=>['title'=>$updateMsg, 'data-toggle'=>'tooltip'], 
     'deleteOptions'=>['title'=>$deleteMsg, 'data-toggle'=>'tooltip'], 
    ], 
    ['class' => 'kartik\grid\CheckboxColumn'] 
]; 
echo GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'filterModel' => $searchModel, 
    'columns' => $gridColumns, 
    'containerOptions' => ['style'=>'overflow: auto'], // only set when $responsive = false 
    'beforeHeader'=>[ 
     [ 
      'columns'=>[ 
       ['content'=>'Header Before 1', 'options'=>['colspan'=>4, 'class'=>'text-center warning']], 
       ['content'=>'Header Before 2', 'options'=>['colspan'=>4, 'class'=>'text-center warning']], 
       ['content'=>'Header Before 3', 'options'=>['colspan'=>3, 'class'=>'text-center warning']], 
      ], 
      'options'=>['class'=>'skip-export'] // remove this row from export 
     ] 
    ], 
    'toolbar' => [ 
     ['content'=> 
      Html::button('&lt;i class="glyphicon glyphicon-plus">&lt;/i>', ['type'=>'button', 'title'=>Yii::t('kvgrid', 'Add Book'), 'class'=>'btn btn-success', 'onclick'=>'alert("This will launch the book creation form.\n\nDisabled for this demo!");']) . ' '. 
      Html::a('&lt;i class="glyphicon glyphicon-repeat">&lt;/i>', ['grid-demo'], ['data-pjax'=>0, 'class' => 'btn btn-default', 'title'=>Yii::t('kvgrid', 'Reset Grid')]) 
     ], 
     '{export}', 
     '{toggleData}' 
    ], 
    'pjax' => true, 
    'bordered' => true, 
    'striped' => false, 
    'condensed' => false, 
    'responsive' => true, 
    'hover' => true, 
    'floatHeader' => true, 
    'floatHeaderOptions' => ['scrollingTop' => $scrollingTop], 
    'showPageSummary' => true, 
    'panel' => [ 
     'type' => GridView::TYPE_PRIMARY 
    ], 
]); 

Und wenn ich dorthin gehe, bekomme ich folgende Fehlermeldung:

Unable to locate message source for category 'kvgrid'. 

Was ist los? Außerdem habe ich keine souces hochgeladen, weil ich nicht weiß wo ich es hinstellen soll und es ist nicht in readme geschrieben =) Außerdem habe ich im Rahmenverzeichnis (vendor) ein paar kartik-v Verzeichnis gefunden und versucht es zu ändern Kartik zu Kartik-V und immer noch gab es kein besseres Ergebnis. Brauche Hilfe.

UPD1 Ich habe geändert Symbolleiste:

'toolbar' => [ 
['content'=> 
    Html::button('&lt;i class="glyphicon glyphicon-plus">&lt;/i>', ['type'=>'button', 'title'=>Yii::t('app', 'Add Book'), 'class'=>'btn btn-success', 'onclick'=>'alert("This will launch the book creation form.\n\nDisabled for this demo!");']) . ' '. 
    Html::a('&lt;i class="glyphicon glyphicon-repeat">&lt;/i>', ['grid-demo'], ['data-pjax'=>0, 'class' => 'btn btn-default', 'title'=>Yii::t('app', 'Reset Grid')]) 
], 
'{export}', 
    '{toggleData}' 
], 

Insane Scull adviced und ich erhalten:

The 'gridview' module MUST be setup in your Yii configuration file and must be an instance of 'kartik\grid\Module'. 

Ich versuche /basic/config/web.php zu assoziatives Array $config ein Element hinzuzufügen:

/*'i18n' => [ 
     'translations' => [ 
      'app' => [ 
       'class' => 'yii\i18n\PhpMessageSource', 
       'basePath' => '@app/messages', 
      ], 
      'kvgrid' => [ 
       'class' => 'yii\i18n\PhpMessageSource', 
       'basePath' => '@app/messages', 
      ], 
     ] 
    ], 
leider

aber ich erhalten:

Setting read-only property: yii\web\Application::i18n error on the whole site. 

Was ist los?

Antwort

3

Ich glaube, Sie haben Internationalisierung oder sagen Übersetzung Funktion Yii::t(), die keine Nachrichtenkategorie kvgrid.

Entweder die Nachrichtenkategorie in Konfiguration erstellen oder die Standardkategorie app verwenden.

'components' => [ 
. 
. 
. 
'i18n' => [ 
     'translations' => [ 
      'app' => [ 
       'class' => 'yii\i18n\PhpMessageSource', 
       'basePath' => '@app/messages', 
      ], 
      'kvgrid' => [ 
       'class' => 'yii\i18n\PhpMessageSource', 
       'basePath' => '@app/messages', 
      ], 
. 
. 
. 
], 

Versuchen Sie, diese Art und Weise:

'toolbar' => [ 
    ['content'=> 
     Html::button('&lt;i class="glyphicon glyphicon-plus">&lt;/i>', ['type'=>'button', 'title'=>Yii::t('app', 'Add Book'), 'class'=>'btn btn-success', 'onclick'=>'alert("This will launch the book creation form.\n\nDisabled for this demo!");']) . ' '. 
     Html::a('&lt;i class="glyphicon glyphicon-repeat">&lt;/i>', ['grid-demo'], ['data-pjax'=>0, 'class' => 'btn btn-default', 'title'=>Yii::t('app', 'Reset Grid')]) 
    ], 
+0

Nicht wirklich verstehen, wo ich hinlegen sollte. i18n Eigentum. Hinzugefügt zu Eigenschaft von Config in /basic/config/web.php und geänderte Symbolleiste in der Ansicht und ich erhalte Einstellung schreibgeschützte Eigenschaft: yii \ web \ Application :: i18n Fehler. –

+0

@SergeyScopin. Fügen Sie Komponenten unter 'config/web.php' hinzu. Siehe aktualisierte Antwort. –

0

Um die Übersetzung für kartik-v/yii2-grid zu erhalten, fügen Sie einfach die folgende auf die Konfiguration unter dem components

'components' => [ 
     'i18n' => [ 
     'translations' => [ 
      'kvgrid' => [ 
       'class' => 'yii\i18n\PhpMessageSource', 
       'basePath' => '@vendor/kartik-v/yii2-grid/messages', 
      ], 
     ], 
], 

Die basePath an den Ort zeigen sollte von Übersetzungsnachrichten, die standardmäßig unter @vendor/kartik-v/yii2-grid/messages definiert sind. Sie können auch für weitere Details this auschecken.

Verwandte Themen