Size: a a a

Laravel для начинающих

2021 February 01

V

Vladyslav in Laravel для начинающих
Sergey
Подскажите.
Есть модель User, у неё есть поля статусов
protected $fillable = [
 ...
 'view_name',
 'view_email',
 'view_about',
 ...
]


Есть модель статусов UserViewStatus
protected $fillable = ['id', 'title', 'slug'];

Мне надо сделать проверку видимости свойства по статусу
Если делать через отношения, то получится что то типа
public function isViewName(){
 return $this->viewName->slug  == 'pokazyvat-vsem';
}

Но получается если у нас 10 таких свойст, это 10 отношений, т.е. 10 запросов в БД

Где лучше хранить все статусы полученные заранее?
Чтоб получилось что то типа
public function isViewName($userViewStatusesList){
 return $userViewStatusesList[$this->view_name]->slug  == 'pokazyvat-vsem';
}

или
public function isViewName(){
 return $this->userViewStatusesList[$this->view_name]->slug  == 'pokazyvat-vsem';
}

Или как такое лучше реализовать в Laravel?
> Мне надо сделать проверку видимости свойства по статусу
ты хочешь сделать что то типа прав доступа разных?
источник

S

Sergey in Laravel для начинающих
Vladyslav
> Мне надо сделать проверку видимости свойства по статусу
ты хочешь сделать что то типа прав доступа разных?
Не. Надо получить массив всех статусов из БД заранее и дергать их в модели по необходимости. Только где их правильно получить, чтоб в модели User был к ним доступ?
источник

V

Vladyslav in Laravel для начинающих
Sergey
Не. Надо получить массив всех статусов из БД заранее и дергать их в модели по необходимости. Только где их правильно получить, чтоб в модели User был к ним доступ?
куда то в мидлу можно впихнуть
источник

V

Vladyslav in Laravel для начинающих
в реквест
источник

V

Vladyslav in Laravel для начинающих
та и все
источник

V

Vladyslav in Laravel для начинающих
ну в юзера точнее*
источник

R#

Reset # Alexey S. in Laravel для начинающих
Или связью один ко многим
источник

R#

Reset # Alexey S. in Laravel для начинающих
Такой зачетный хелпер arr::flatten прям понравился
источник

AV

Andrew Vozniak in Laravel для начинающих
Возник такой вопрос, есть роут, Route::middleware(['auth:sanctum', 'verified'])->get('/hospital/create', 'App\Http\Controllers\HospitalController@creates')->name('hospital_create');
и контроллер с методом creates
   public function creates() {
       return redirect()->route('home');
   }
при переходе на url почемуто метод creates не работает, другие ж методы данного контролера работают
источник

V

Vladyslav in Laravel для начинающих
Andrew Vozniak
Возник такой вопрос, есть роут, Route::middleware(['auth:sanctum', 'verified'])->get('/hospital/create', 'App\Http\Controllers\HospitalController@creates')->name('hospital_create');
и контроллер с методом creates
   public function creates() {
       return redirect()->route('home');
   }
при переходе на url почемуто метод creates не работает, другие ж методы данного контролера работают
а что в твоем случае это вот "не работает"?
источник

AV

Andrew Vozniak in Laravel для начинающих
игнорирует метод, echo не выводит redirect не перекидывает, такое чуство будто метода вообще нету, но ошибки почему-то также нету
источник

S

Sergey in Laravel для начинающих
Vladyslav
куда то в мидлу можно впихнуть
class User extends Authenticatable
{
 ...
 
 public function isViewName($viewNameId){
   if ( !array_key_exists('userViewStatusesList', $this->userViewStatusesList)){
     $this->load('userViewStatusesList');
   }

   return $this->userViewStatusesList[$viewNameId]->slug  == 'pokazyvat-vsem';
 }
 
 ...
}

Вот так наверно лучше
источник

V

Vladyslav in Laravel для начинающих
Sergey
class User extends Authenticatable
{
 ...
 
 public function isViewName($viewNameId){
   if ( !array_key_exists('userViewStatusesList', $this->userViewStatusesList)){
     $this->load('userViewStatusesList');
   }

   return $this->userViewStatusesList[$viewNameId]->slug  == 'pokazyvat-vsem';
 }
 
 ...
}

Вот так наверно лучше
вот эту строку я не понял
if ( !array_key_exists('userViewStatusesList', $this->userViewStatusesList))
источник

S

Sergey in Laravel для начинающих
Vladyslav
вот эту строку я не понял
if ( !array_key_exists('userViewStatusesList', $this->userViewStatusesList))
Проверяем существует ли такое свойство объекта
источник

S

Sergey in Laravel для начинающих
Vladyslav
вот эту строку я не понял
if ( !array_key_exists('userViewStatusesList', $this->userViewStatusesList))
Если нет, то подгружаем статусы из БД
источник

V

Vladyslav in Laravel для начинающих
Sergey
class User extends Authenticatable
{
 ...
 
 public function isViewName($viewNameId){
   if ( !array_key_exists('userViewStatusesList', $this->userViewStatusesList)){
     $this->load('userViewStatusesList');
   }

   return $this->userViewStatusesList[$viewNameId]->slug  == 'pokazyvat-vsem';
 }
 
 ...
}

Вот так наверно лучше
тоесть если внтури $this->userViewStatusesList нет ключа userViewStatusesList то мы грузим рилейшин userViewStatusesList ?
источник

S

Sergey in Laravel для начинающих
Vladyslav
тоесть если внтури $this->userViewStatusesList нет ключа userViewStatusesList то мы грузим рилейшин userViewStatusesList ?
да
источник

V

Vladyslav in Laravel для начинающих
Sergey
да
🌚🌚
источник

S

Sergey in Laravel для начинающих
Что это значит? Плохо так делать?
источник

V

Vladyslav in Laravel для начинающих
просто чуток не пойму эту структуру )
источник