Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inny]Laravel problem z rolami użytkownika, nie bierze pod uwagę warunku
casperii
post
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


Panowie, przejdę może od razu do rzeczy, mam kod:

Role.php :
  1. <?php
  2.  
  3. namespace App;
  4.  
  5. use Illuminate\Database\Eloquent\Model;
  6.  
  7. class Role extends Model
  8. {
  9.  
  10. public $guarded = [];
  11. public $timestamps = false;
  12.  
  13. public function users()
  14. {
  15. return $this->belongsToMany('App\User');
  16. }
  17. }


oraz RegisterController.php

  1. if(!Role::where('name','type')->exists())
  2. {
  3. Role::create(['name'=>'person']);
  4. Role::create(['name'=>'firm']);
  5. }
  6.  
  7. //sprawdzamy czy typ = 0 czyli równy 1 - jeżeli tak dodaje Role firm w innym przypadku dodaje person w tabeli roles
  8.  
  9. if($data['type'] (IMG:style_emoticons/default/questionmark.gif) 0)
  10. $user->roles()->attach( Role::where('name','firm')->first()->id );
  11. else
  12. $user->roles()->attach( Role::where('name','person')->first()->id );
  13.  


czyli przy każdej rejestracji użytkownika dodaje także do tabeli role_user typ konta (firma / os. fiz) , oraz dodatkowo mam stworzony warunek , który nie działa zgodnie z jego logiką, tzn. sprawdzam czy istnieje w tabeli roles jakieś pola , jeżeli nie to dopisuje 2 rekordy person oraz firm. Problem w tym, że warunek ten działa zawsze bez znaczenia czy ów wartości znajdują się już w tabeli czy też nie.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SmokAnalog
post
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Ale ta linia:

  1. if(!Role::where('name','type')->exists())


Nie oznacza, że nie ma danych w tabeli Roles, tylko że nie ma rekordu w tabeli roles, gdzie name = 'type'. Trochę bez sensu chyba?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 14:28