2017-07-29 5 views
1

ich eine Yii2 erweiterte App mit Dynagrid haben und mit einer Spalte editierbar (http://demos.krajee.com/editable)
Ich schrieb es auf dem lokalen PC und bearbeitbare funktioniert gut
ich die Dateien auf meinem Host kopiert und jetzt sind Interner Serverfehler beim Versuch Editierbare Widget zu verwenden, um den Wert des Feldes zu aktualisieren
Untersuchung zeigte mir den Ort, an dem Fehleryii2 editierbar Interner Serverfehler auf dem Host (Klasse yii Helfer json nicht gefunden)

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

indem Sie auf dieser jqery klicken .js sehe ich:

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

Bei der Einführung einer console.log (xhr); vor dem xhr.send Anweisung sehe ich:

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>" 

response

So ist der Grund: Klasse yii \ Helfer \ json nicht gefunden Aber in meinem Controller ich yii json Helfer verwenden, wie Sie in sehen kann meine Controller:

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; 
     ... 

Dies ist die Ansicht:

<?= 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 Ich sehe, warum ich diesen Fehler nur auf dem Host und nicht auf dem lokalen PC bekomme. Jede Hilfe wäre nett!

Antwort

1

Es ist seltsames Verhalten, aber versuchen Sie use yii\helpers\Json;, wo J in Großbuchstaben ist.

Verwandte Themen