2016-05-02 15 views
1

In meiner App muss ich eine Tabelle (CGridView) mit wenigen Spalten und einer Spalte mit Schaltfläche erstellen. Wenn ich auf den Button klicke, sollte er eine Aktion für das Modell "studentKurs" ausführen. Also übergebe ich die Argumente an die Tabelle, und wie ich sehe, wird die Funktion ausgeführt. Was fehlschlägt, ist meine Modellüberprüfung, obwohl ich Argumente mit GET übergebe und sie in der von mir erstellten actionCreateCustom-Methode abrufe und $ model-Felder mit ihnen beziehe. Was vermisse ich?Benutzerdefinierte Aktion erstellen

Hier ist das Teil aus der Tabelle, in der ich URL zu erstellen:

array(
    'class' => 'CButtonColumn', 
    'template' => '{add}', 
    'buttons' => array(
     'add' => array(
      'url' => 'Yii::app()->createUrl("studentKurs/createCustom", 
         array(
         "student_id" => $data[\'id\'], 
         "predmet_naziv" => $_GET[\'predmet_naziv\'], 
         "id_stud_prog" => $data[\'id_stud_prog\'], 
         "id_nivo_stud" => $data[\'id_nivo_stud\'], 
         "stud_god_god" => $_GET[\'stud_god_god\'] 
        ) 
        )', 
     ), 
    ), 
), 

Funktion von der Steuerung:

public function actionCreateCustom($student_id, $predmet_naziv, $id_stud_prog, $id_nivo_stud, $stud_god_god) 
{ 
    $model=new StudentKurs; 

    $model['predmet_naziv'] = $predmet_naziv; 
    $model['id_stud_prog'] = $id_stud_prog; 
    $model['id_nivo_stud'] = $id_nivo_stud; 
    $model['stud_god_god'] = $stud_god_god; 
    $model['student_id'] = $student_id; 

    $model['ocjena'] = ''; 
    $model['polozeno'] = ''; 

    if($model->validate()) 
    { 
     echo "OK"; 
     $this->saveModel($model); 
    } 
    else 
    { 
     echo "ERROR"; 
    } 
     //$this->refresh(); 
} 

ERROR Nachricht auf meinem Bildschirm angezeigt wird. Irgendwelche Ideen?

Antwort

1

Sie können die Validierungsfehler auf diese Weise erhalten

if ($model->validate()) { 
    // all inputs are valid 
} else { 
// validation failed: $errors is an array containing error messages 
    $errors = $model->errors; 
    var_dump($errors); 
    } 

oder (triviale Weise) Sie Ihre Regel selektiv für investigatin die responsable kommentieren ..

+0

Sie mich gerettet. Eines von zwei Feldern, die ich leer gesetzt habe, konnte nicht gesetzt werden und die Nachricht darüber wurde gedruckt. Vielen Dank! –

+0

Nun, wenn meine Antwort richtig ist, bitte markieren Sie es als akzeptiert .. – scaisEdge

+0

Konnte es nicht in den ersten 10 Minuten, es hat mir nicht erlaubt. Danke noch einmal :) –

Verwandte Themen