Yii Framework Forum: Meldung Anzeigen, Wenn Löschen Nicht Erlaubt - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Meldung Anzeigen, Wenn Löschen Nicht Erlaubt Rate Topic: -----

#1 User is offline   reburg 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 70
  • Joined: 15-January 13

Posted 30 January 2014 - 04:21 PM

Hallo,

ich möchte, dass ein bestimmter Datensatz, also eine bestimmte Zeile in der gridView (z.B. mit der userId 'admin') nicht gelöscht werden kann. Bei dem Versuch, den DS zu löschen soll der Benutzer einen Hinweis bekommen.

Ich habe im Model folgendes versucht:
   public function beforeDelete() { 
        if ( $this->userId == "admin" ) {
            $error = 'Der Benutzer \'admin\' kann nicht gelöscht werden.';
            // echo $error;
            return false;
        }  else return parent::beforeDelete();
    }

Das Löschen des Datensatzes wird dadurch zwar verhindert, aber der Benutzer erfährt nicht, warum der DS nicht aus der GridView verschwindet. Die gewünschte Meldung einfach mit
echo $error
anzeigen funktioniert jedenfalls nicht - die Fehlermeldung erscheint nicht auf der Seite.

Habe noch keine Erfahrung mit dem Error Handling. :rolleyes:

Danke für jeden Tipp
Ferdinand
Greetings from Austria
Ferdinand
0

#2 User is offline   mbi 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 604
  • Joined: 08-May 09

Posted 30 January 2014 - 06:38 PM

schau dir das mal an:
http://www.yiiframew...flash-messages/
0

#3 User is offline   reburg 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 70
  • Joined: 15-January 13

Posted 31 January 2014 - 09:04 AM

View Postmbi, on 30 January 2014 - 06:38 PM, said:


Danke für den Link. Leider komme ich nicht ganz zurecht damit.
Im Model habe ich nun:
public function beforeDelete() {
    if ( $this->userId == "admin" ) {
        $error = 'Der Benutzer \'admin\' kann nicht gelöscht werden.';
        Yii::app()->user->setFlash('error', $error);
        return false;
    }  else return parent::beforeDelete();
}

Im view admin (gridView) habe ich drei verschiedene Varianten probiert:
Yii::app()->clientScript->registerScript(
   'myHideEffect',
   '$(".info").animate({opacity: 1.0}, 3000).fadeOut("slow");',
   CClientScript::POS_READY
);

Yii::app()->clientScript->registerScript('error', "alert(".Yii::app()->user->getFlash('error').");");
?>

<h1>Benutzerverwaltung</h1>

<div class="info">
    <?php echo Yii::app()->user->getFlash('error'); ?>
</div>

Am liebsten wäre mir die einfache Variante mit alert() oder ganz ohne JavaScript.
Aber ich bekomme nichts von der Meldung zu sehen. Nur ein kurzes Aufflackern (JQuery ???).
Greetings from Austria
Ferdinand
0

#4 User is offline   reburg 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 70
  • Joined: 15-January 13

Posted 01 February 2014 - 03:40 PM

Ich habe das Problem auf andere Weise gelöst: Durch Ausblenden des Links zum Löschen dieses Datensatzes im gridView :rolleyes: :
array(
   'class'=>'CButtonColumn',
         'buttons' => array(
             'delete' => array('visible' => '$data->userId != \'admin\''),
          ),
)

Und zur Sicherheit gibt es ja noch die Funktion im Model:
public function beforeDelete() {
    if ( $this->userId == "admin" ) return false;
    else return parent::beforeDelete();
}

Greetings from Austria
Ferdinand
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users