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%)
-----


Moim zdaniem lepiej byłoby po prostu tego nie sprawdzać, tylko mieć seedy do wstawiania tych podstawowych ról. Logika nie powinna się sypać, kiedy nie masz ról. Ewentualnie dałbym do panelu admina ostrzeżenie, gdy role są puste. Wiesz, warto unikać takich sprawdzajek, bo to niewiele wnosi, a dodaje warstwę logiki, o której się zapomina.
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: 4.10.2025 - 15:52