2017-07-29 5 views
1

J'ai une Yii2 application avancée avec Dynagrid et une modifiable colonne (http://demos.krajee.com/editable)
je l'ai écrit sur le PC local et de travaux modifiables fin
J'ai copié les fichiers sur mon hôte et j'obtiens l'erreur interne du serveur lorsque vous essayez d'utiliser un widget éditable pour mettre à jour la valeur du champ
Enquêter m'a montré l'endroit où l'erreur se produityii2 Erreur interne du serveur modifiable sur l'hôte (aides de classe yu examples JSON introuvable)

POST http://.../backend/web/index.php?r=trackdata%2Findex 500 (Internal Server Error) 
send @ jquery.js:9177 
... 

en cliquant sur ce jqery .js je vois:

xhr.send(options.hasContent && options.data || null); with the red error flag 

Lors de l'introduction d'un fichier console.log (xhr); avant l'instruction xhr.send je vois:

response:"<pre>PHP Fatal Error &#039;yii\base\ErrorException&#039; with message &#039;Class &#039;yii\helpers\json&#039; not found&#039; ↵↵in .../backend/controllers/TrackdataController.php:63↵↵Stack trace:↵#0 [internal function]: yii\base\ErrorHandler-&gt;handleFatalError()↵#1 {main}</pre>" 

responseText

Ainsi, la raison est: aides classe YII \ examples \ JSON pas trouvé Mais dans mon contrôleur j'utilise aide yu JSON comme vous pouvez le voir dans mon contrôleur:

use yii\helpers\json; 
... 
if (Yii::$app->request->post('hasEditable')) 
    { 
     $trackId = Yii::$app->request->post('editableKey'); 
     $model = Trackdata::findOne($trackId); 
     $out = Json::encode(['output'=>'', 'message'=>'']); 
     $post = []; 
     $posted = current($_POST['Trackdata']); 
     $post['Trackdata'] = $posted; 
     if ($model->load($post)) 
     { 
      $model->save(); 
      $output = ''; 
      $out = Json::encode(['output'=>$output, 'message'=>'']); 
     } 
     echo $out; 
     return; 
     ... 

Voici la vue:

<?= DynaGrid::widget([ 
    'columns' => [ 
     ... 
     [ 
      'class' => 'kartik\grid\EditableColumn', 
      'attribute'=>'vu', 
      'editableOptions'=> function ($model, $key, $index) { 
       return [ 
        'displayValueConfig' => [1 => 'Oui', 0 => 'Non'], 
        'displayValue' => [1 => 'Oui', 0 => 'Non'], 
        'data' => [1 => 'Oui', 0 => 'Non'], 
        'value' => 0, 
        'asPopover' => true, 
        'header' => 'Vu ', 
        'inputType' => Editable::INPUT_DROPDOWN_LIST, 
       ]; 
      } 
     ], 
     ... 

I c annot voir pourquoi je reçois cette erreur uniquement sur l'hôte et non sur le PC local. Toute aide serait bien!

Répondre

1

C'est un comportement étrange, mais essayez use yii\helpers\Json; où J est en majuscule.