2017-12-13 2 views
1

In meiner view.php Ich habe eine enge Ticket-Taste. Wenn ich diesen Knopf wähle, erhält er automatisch die Systemzeit und der Status ändert sich in 'Fertig'.Anzeige einer Popup-Nachricht und Validierung Yii2

Was ich versuchen möchte, ist, dass, wenn ich den Schließen-Knopf, wenn das Ticket bereits getan wurde, das time_end wird nicht geändert werden und es wird eine Popup-Meldung ähnlich der Schaltfläche löschen angezeigt. mein Code

Hier:

public function actionClose($id) 
{ 
    $model = $this->findModel($id); 
//  $model->status = ('Done'); 
//  $model->time_end = date('y-m-d h-i-s'); 
//  $model->save(); 
//  return $this->redirect(['view', 'id' => $model->id]); 

    if ($model->status == 'Done' && $model->time_end == date('y-m-d h-i-s')) { 
     (['data' => ['prompt' => 'Ticket has already been closed!']]); 
    } else { 
     $model->status = ('Done'); 
     $model->time_end = date('y-m-d h-i-s'); 
     $model->save(); 
     return $this->redirect(['view', 'id' => $model->id]); 

} 

Mein Problem ist, dass, wenn die Schließen-Schaltfläche klicken und ich wählen Sie ein Ticket, das einen Status ‚Fertig‘ hat und bereits ein Zeit Ende hat, wird es immer noch die TIME_END obwohl Der Ticketstatus ist bereits 'Fertig'. Wie kann ich verhindern, dass es passiert wie eine Art Validierung mit einem Pop-up-Meldung ähnlich der Schaltfläche löschen in der view.php

+0

Warum Sie nicht 'close' Taste verstecken, wenn der Status ist 'Fertig'. !! –

Antwort

0

Sie können eine Flash-Nachricht verwenden.

Controller:

if ($model->status == 'Done') { 
    Yii::$app->session->setFlash('error', 'Ticket has already been closed!'); 
    return $this->redirect(['view', 'id' => $model->id]); 
} 

Ausblick:

<?= Yii::$app->session->getFlash('error'); ?> 
+1

Ja! Das habe ich getan, ich habe es bereits herausgefunden. Vielen Dank! – noobkoder

+0

Bitte markieren Sie meine Antwort als akzeptiert. – nicolascolman

0

Ich bekomme es endlich meine wenn sonst Bedingung ist falsch, was ich getan habe, war dies:

Aber immer noch habe ich keine Ahnung, wie ich eine Popup-Nachricht anzeigen werde.