Yii Framework Forum: Jak Sprawdzic Czy Emial Jest W Bazie ? - Yii Framework Forum

Jump to content

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

Jak Sprawdzic Czy Emial Jest W Bazie ? Rate Topic: -----

#1 User is offline   kogut 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 19
  • Joined: 16-May 14
  • Location:Dublin, Ireland

Posted 22 May 2014 - 06:26 AM

Siemka,

Mam nadzieje ze nie powiecie ze spamuje forum , bo to trzeci temat w ciagu kilku dni.

Ale pytanie jest krotkie: czy istnieje mozliwosc w Yii aby sprawdzi czy e-mail jest juz w bazie?

Taka odwrotna funkcja do unique:

array('email', 'unique', 'on' => 'create', 'message'=>'Email already exists!'),

Bez problemu zrobie to z zapytaniem ale zastawialem sie czy jest cos z Yii ?

Dzieki i pozdrawiam
Marcin.
0

#2 User is offline   Baranek 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 38
  • Joined: 19-July 11

Posted 22 May 2014 - 06:29 AM

Siema, wlasnie ta funckja sprawdza czy email jest w bazie. Nie rozumiem po co sprawdzac czy nie ma takiego maila. Skoro nie ma to doda do bazy...
array('email', 'unique', 'on' => 'create', 'message'=>'Email already exists!')
0

#3 User is offline   kogut 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 19
  • Joined: 16-May 14
  • Location:Dublin, Ireland

Posted 22 May 2014 - 06:45 AM

View PostBaranek, on 22 May 2014 - 06:29 AM, said:

Siema, wlasnie ta funckja sprawdza czy email jest w bazie. Nie rozumiem po co sprawdzac czy nie ma takiego maila. Skoro nie ma to doda do bazy...
array('email', 'unique', 'on' => 'create', 'message'=>'Email already exists!')


Dzieki za szybka odpowiedz.

Szukam funkcji odwrotnej do unique na potrzby resetownia hasla. W widoku "forgotpassword" niezalogowany uzytkownik wpisuje address e-mail i w kontrolerze chcilabym sprawdzic czy podany e-mail jest w bazie czy nie, jesli tak kontynuje proces resetu hasla, jesli nie ma to wyswietla info. Przy pomocy podanej wyzej funkcji nie wyswietli mi erroru, wiec szukam czegos w stylu !unique.

Mam nadzieje ze dobrze tlumacze :)

Pozdrawiam!
0

#4 User is offline   kogut 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 19
  • Joined: 16-May 14
  • Location:Dublin, Ireland

Posted 22 May 2014 - 09:46 AM

Hey!

Yii chyba takiej funkcji nie oferuje jednak... jak narazie korzystam z wlasnej funcji, ale gdyby ktos z Was na cos wpadl to prosze o info. Poki co tak to wyglada( wszelkie sugestie mile widziane):

rule w modleu Users:
array('email', 'hasEmailBeenUsed', 'on' => 'forgotpassword', 'message' => 'Invalid Email address!'),


funkcja w modelu Users:
public function hasEmailBeenUsed($attribute, $params){
        $email = $this->$attribute;
	$sql = "SELECT email FROM users WHERE email = '$email'";
        $result = Yii::app()->db->createCommand($sql)->execute();
 	$message = $this->$attribute.' does not exist.';
	if(!$result)$this->addError($attribute, $message);
	}




Pozdrawiam!
0

#5 User is offline   rob006 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 59
  • Joined: 01-January 13
  • Location:Lublin, Poland

Posted 22 May 2014 - 10:08 AM

Czy istnieje już user o takim emailu mozesz sprawdzi tak:

Users::model()->exists('email = :email', array('email' => $email));


Raczej odradzam wrzucanie takiej logiki do podstawowego modelu - reset hasła pownien mieć swój własny model.
0

#6 User is offline   kogut 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 19
  • Joined: 16-May 14
  • Location:Dublin, Ireland

Posted 22 May 2014 - 10:19 AM

View Postrob006, on 22 May 2014 - 10:08 AM, said:

Czy istnieje już user o takim emailu mozesz sprawdzi tak:

Users::model()->exists('email = :email', array('email' => $email));


Raczej odradzam wrzucanie takiej logiki do podstawowego modelu - reset hasła pownien mieć swój własny model.


Tutaj mnie zaciekawiles. Przyznaje ze nie zastanawialem sie nad odzielnym modelem dla resetowania hasla. Myslalem ze uzycie scenariusza wystarczy. Model uzytkonika zostal stworzony przy uzyciu gii, ktore tez samo wygenerowalo zasady dla hasla. Wydawalo mi sie ze w obecnym modelu przewidzialem wiekszosc mozliwych systucji. Moglbys mi przyblizyc dlaczego uwazasz ze reset hasla powinien miec wlasny model?

Dzieki!
0

#7 User is offline   rob006 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 59
  • Joined: 01-January 13
  • Location:Lublin, Poland

Posted 22 May 2014 - 10:44 AM

Modele bazujące na AR służą do modyfikacji danych. Ten formularz nie modyfikuje danych, wrzucając do niego takie reguły tylko niepotrzebnie go komplikujesz. Zobacz jak wygląda domyślny formularz logowania - to jest osobny model, bo służy tylko do walidacji wprowadzonych danych, które nigdzie nie są zapisywane.
1

#8 User is offline   kogut 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 19
  • Joined: 16-May 14
  • Location:Dublin, Ireland

Posted 22 May 2014 - 10:57 AM

View Postrob006, on 22 May 2014 - 10:44 AM, said:

Modele bazujące na AR służą do modyfikacji danych. Ten formularz nie modyfikuje danych, wrzucając do niego takie reguły tylko niepotrzebnie go komplikujesz. Zobacz jak wygląda domyślny formularz logowania - to jest osobny model, bo służy tylko do walidacji wprowadzonych danych, które nigdzie nie są zapisywane.




Faktycznie, jest tak jak mowisz. Pomysle nad przenisieniem zasad resetowania hasla do odzielnego modelu.

Dzieki!

Pozdrawiam!
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