Yii Framework Forum: Meldung Wenn Benutzer Schon Besteht - Yii Framework Forum

Jump to content

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

Meldung Wenn Benutzer Schon Besteht Rate Topic: -----

#1 User is offline   beatcode 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 57
  • Joined: 13-May 11
  • Location:Zürich

Posted 16 December 2012 - 01:16 PM

Hallo Zusammen

Ich bin überzeugt das mein Bastelansatz nicht nur kompliziert sondern auch Fehleranfällig ist.
Wäre froh wenn mir jemand auf die Sprünge hilft wie man das richtig umsetzt.

Anforderung:
Wen der gewählte Benutzername für die Registration bereits verwendet wird oben am Formular den Benutzer darauf hinweisen.

Mein Ansatz
Ich prüfe im Controller mit findByAttribute ob der Benutzername bereits besteht und gebe der redirect eine Variabel mit mit welcher ich in der View die Meldung anzeige oder nicht.
View

Formularcode...


<?
if ( $test = 1) {
	Yii::app()->user->setFlash('danger', '<strong>Fehler!</strong> Der Benutzername besteht bereits.');
	$this->widget('bootstrap.widgets.TbAlert', array(
		'block'=>true, // display a larger alert block?
		'fade'=>true, // use transitions?
		'closeText'=>'×', // close link text - if set to false, no close link is displayed
		'alerts'=>array( // configurations per alert type
			'danger'=>array('block'=>true, 'fade'=>true, 'closeText'=>'×'), // success, info, warning, error or danger
		),
	)); 
	$test = 0;
}
?>Formularcode....



Controller

public function actionRegister()
{
 	$model=new User;

 	if(isset($_POST['User']))
    {
        $model->attributes=$_POST['User'];
		
		//prüfen ob User bereits besteht
		if (User::model()->findByAttributes(array('username'=>$model->username))){
		$this->redirect(array('site/Register'),array('test'=>1));      <<------ übergibt eine 1 in der Variabel Test
		}
		
		$model->password = md5($model->password);
		
		$rnd = rand(0,9999);
		$uploadedFile=CUploadedFile::getInstance($model,'url');
        $fileName = "{$rnd}-{$uploadedFile}";  // random number + file name
        $model->url = $fileName;
      ....
      .


Kann ich das schon im Model prüfen und über die Form Validationsmeldung übergeben?

0

#2 User is offline   dito 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 48
  • Joined: 13-October 10
  • Location:Zurich

Posted 16 December 2012 - 02:30 PM

Für diesen fall gibts den Unique validator. Dazu definierst du einfach in deinem Model folgende rule:

public function rules()
{
  return array(
    ...
    array('username', 'unique'),
    ...
  );
}


Problem gelöst :-)
1

#3 User is offline   beatcode 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 57
  • Joined: 13-May 11
  • Location:Zürich

Posted 17 December 2012 - 03:27 AM

Unglaublich!!
Posted Image

Vielen Dank
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