@laravel_pro

Страница 1453 из 2014
Adel
07.06.2018
15:05:10
в доку бы не полез. лень

Евгений
07.06.2018
15:05:28
правильно

Сергей
07.06.2018
15:05:49
красачик за тебя посмотрел доку. или даже не глядя догадался как можно проверить
Ну и что здесь такого? все рано или поздно были на низком уровне и учаться со временем

Евгений
07.06.2018
15:07:01
то есть это нормально других людей просить за себя смотреть в доку?

Google
Евгений
07.06.2018
15:07:09
скажи, это было в доке?

Сергей
07.06.2018
15:08:41
скажи, это было в доке?
через запятую не видел

скажи, это было в доке?
там обычный пример Route::put('post/{id}', function ($id) { // })->middleware('role:editor');

Евгений
07.06.2018
15:10:19
какой пакет юзаешь для ролей?

Сергей
07.06.2018
15:10:57
Игорь
07.06.2018
15:21:15
Есть бд. В бд есть таблица с фильмами, странами (1 ко многим), студиями(1 ко ногим), жанрами (многие ко многим), актёрами (многие ко многим). Нужно получить список фильмов с определёнными странами, студиями, жанрами и актёрами. Со связями 1 ко многим легче - т.к. фильмы и идентификаторы находятся в 1 таблице. Но кол-во выбранных стран и студий может разниться . Делать несколько запросов в бд и совмещать результаты? Например: $films = array(); foreach ($counties as $country) { $films = array_merge ($films, Films::where('country_id', $country) } Выходит очень дофига запросов к бд. А если посмотреть на то что ещё есть связи многие ко многим дак это вообще печаль получается, ибо связь с основной таблицей там имется только через вспомогательные по ключам. При этом всём нужно всё это дело сортировать по дате / году выпуска / алфавиту / рейтингу и т.п. Вроде как в ларавеле есть функции облегчающие и оптимизирующие всё это дело. Подскажите пожалуйста как это всё грамотно сделать?

Сергей
07.06.2018
15:22:42
role:admin,manager
ну кстати с таким вариантом если у админа нет менеджера в ролях то не пускает)

Adel
07.06.2018
15:23:13
и просто менеджера тогда не должно пускать...

Adel
07.06.2018
15:23:45
тогда и просто админа должно пускать...

Сергей
07.06.2018
15:24:31
тогда и просто админа должно пускать...
меняю местами и по разному работает 'role:admin,manager']

если менагер первый то манагера пускает а просто админа нет и наоборот если админ первый то просто манагера не пускает)

Adel
07.06.2018
15:25:36
ну тогда делай как все нормальные делают. либо используй can: либо пиши свои миддлвары.

Google
Maksim (Ellrion)
07.06.2018
15:26:35
role и так его мидл

Сергей
07.06.2018
15:26:43
Евгений
07.06.2018
15:27:20
Есть бд. В бд есть таблица с фильмами, странами (1 ко многим), студиями(1 ко ногим), жанрами (многие ко многим), актёрами (многие ко многим). Нужно получить список фильмов с определёнными странами, студиями, жанрами и актёрами. Со связями 1 ко многим легче - т.к. фильмы и идентификаторы находятся в 1 таблице. Но кол-во выбранных стран и студий может разниться . Делать несколько запросов в бд и совмещать результаты? Например: $films = array(); foreach ($counties as $country) { $films = array_merge ($films, Films::where('country_id', $country) } Выходит очень дофига запросов к бд. А если посмотреть на то что ещё есть связи многие ко многим дак это вообще печаль получается, ибо связь с основной таблицей там имется только через вспомогательные по ключам. При этом всём нужно всё это дело сортировать по дате / году выпуска / алфавиту / рейтингу и т.п. Вроде как в ларавеле есть функции облегчающие и оптимизирующие всё это дело. Подскажите пожалуйста как это всё грамотно сделать?
Film::whereHas(....).....

Maksim (Ellrion)
07.06.2018
15:27:28
@kardashov ты лучше на основании ролей определи абилки (или политики) и юзай can

Adel
07.06.2018
15:29:09
role и так его мидл
хм.. да? т.е. он написал миддлварку и не знает как ее юзать?

Евгений
07.06.2018
15:29:13
Film::whereHas('countries', function($query) use ($countriesIds) { $query->whereIn('id', $countriesIds); })->whereHas('genres', ....)....

Adel
07.06.2018
15:30:08
я и так слишком низкого мнения о людях.. зачем его еще ниже делать...

Евгений
07.06.2018
15:30:16


сделай тут перед id dd($role);

Adel
07.06.2018
15:30:57
там очевидно надо implode сделать вроде.

и проверять кучу ролей. но can лучше

Maksim (Ellrion)
07.06.2018
15:31:23
Adel
07.06.2018
15:31:31
дада. вечно путаю

Сергей
07.06.2018
15:32:36
у меня api как я can смогу юзать?

Евгений
07.06.2018
15:32:52
public function handle($request, Closure $next, array $roles) попробуй и сделай dd($roles)

Игорь
07.06.2018
15:34:02
Film::whereHas('countries', function($query) use ($countriesIds) { $query->whereIn('id', $countriesIds); })->whereHas('genres', ....)....
Хмм, интересно, можно просто массив передать($countriesIds)? Вот только жанры в другой таблице лежат, many to many же - таблицы ganres и ganre_film

Евгений
07.06.2018
15:34:23
всё равно, там через связь вытаскивается

Maksim (Ellrion)
07.06.2018
15:34:27
у меня api как я can смогу юзать?
а какая разница апи или не апи?

Евгений
07.06.2018
15:34:29
просто массив да

Google
Сергей
07.06.2018
15:34:40
public function handle($request, Closure $next, array $roles) попробуй и сделай dd($roles)
Type error: Argument 3 passed to App\Http\Middleware\OwnerMiddleware::handle() must be of the type array, string given, called in

Евгений
07.06.2018
15:34:57
ну тогда верни стринг и делай explode

Сергей
07.06.2018
15:35:10
а какая разница апи или не апи?
я к сожалению не видел реализации с can, посмотрю тогда)

Игорь
07.06.2018
15:35:35
всё равно, там через связь вытаскивается
любопытно, спасибо большое за помощь. В итоге это через 1 запрос выполнится?

Сергей
07.06.2018
15:36:09
ну тогда верни стринг и делай explode
так в $role приходит 1 роль только а не все

Евгений
07.06.2018
15:36:29
ты dd($role); делал и там одна роль?

Сергей
07.06.2018
15:36:42
Евгений
07.06.2018
15:36:53
в каом то проекте я делал мидлварю с ролями, щас попробую вспомнить где и посмотрю

Игорь
07.06.2018
15:37:15
а вот не знаю чото
пхпмуадмин пишет логи sql запросов? Можно от туда посмотреть

Евгений
07.06.2018
15:37:28
смотри через дебагбар

Adel
07.06.2018
15:37:32
public function handle($request, Closure $next, ...$guards)

вот вроде как надо делать

Maksim (Ellrion)
07.06.2018
15:38:00
так в $role приходит 1 роль только а не все
в варианте role:foo,bar тебе придет "foo,bar" и надо самому разбивать же

Сергей
07.06.2018
15:38:02
вот вроде как надо делать
ну кстати да) массив получается

Adel
07.06.2018
15:38:23
в варианте role:foo,bar тебе придет "foo,bar" и надо самому разбивать же
глянь выше. вроде ларка умеет сама раскидывать по параметрам

Евгений
07.06.2018
15:38:28
а тьфу блин, я забыл про вариант с ...

так и делал у себя

Сергей
07.06.2018
15:38:57
ну дальше всё понятно уже как делать)

а что вы юзаете для ролей?

Google
Евгений
07.06.2018
15:40:19
примерно то же самое

Сергей
07.06.2018
15:40:41
Евгений
07.06.2018
15:40:43
хотя у меня в последних проектах кроме роли админа ничего не было, поэтому там намного проще) у юзера is_admin поле и всё

Adel
07.06.2018
15:40:52
а пермишены?
они почти никогда не нужны

Сергей
07.06.2018
15:41:50
они почти никогда не нужны
а вот с ролями лучше держать массив ролей у юзера или одну роль? как тут правильнее?

Adel
07.06.2018
15:42:11
как просит продакт оунер

Евгений
07.06.2018
15:42:14
https://github.com/romanbican/roles - вот один раз юзал пакет, но в итоге очень мало что из него использовал. Да и давно это было. И пакет сам по всей видимости уже не поддерживается

Maksim (Ellrion)
07.06.2018
15:42:19
Adel
07.06.2018
15:42:19
какую авторизацию и т.д.

Dave
07.06.2018
15:42:29
топлю за bouncer

но сам какого то хера юзаю laratrust

Сергей
07.06.2018
15:43:12
как просит продакт оунер
а если ты фрилансер и ты сам себя просишь?)

Maksim (Ellrion)
07.06.2018
15:43:25
фигня все эти пакеты. или юзать половину не будешь или переделаешь половину под себя в итоге

Антон
07.06.2018
15:43:44
а я entrust юзал )

Adel
07.06.2018
15:43:48
а если ты фрилансер и ты сам себя просишь?)
значит ты продакт оунер. просто говоря про бизнес-логику... бизнес логика помоему практически никогда не влияет на авторизацию. это совсем две разные вещи

которые почти не прикасаются

Adel
07.06.2018
15:44:34
видимо мы по разному понимаем этот термин тогда
есть заказ, есть возможность его отменить. сам заказ вообще не знает кто его может отменить. единственное что он может - реализовать метод cancel

Maksim (Ellrion)
07.06.2018
15:47:07
есть заказ, есть возможность его отменить. сам заказ вообще не знает кто его может отменить. единственное что он может - реализовать метод cancel
тебе говорят что отменять заказы могут только менеджер ведущий клиента и директор на всякий случай. это не бизнес логика?

Google
Adel
07.06.2018
15:48:02
ну вот для меня - нет. это ведь интерфейсная даже больше вещь. бизнес логика для меня - заказ, его итемы, скидки, правила отмены.. и т.д.

кто что может с ним делать - это параллельная вселенная

Nik
07.06.2018
15:48:51
RBAC и есть часть БЛ

Maksim (Ellrion)
07.06.2018
15:49:25
бл - " совокупность правил, принципов, зависимостей поведения объектов предметной области (области человеческой деятельности, которую система поддерживает). Иначе можно сказать, что бизнес-логика — это реализация правил и ограничений автоматизируемых операций."

кто что может с ним делать - это параллельная вселенная
контроль доста это те самые ограничения операций. на равне с правилами валидации и т.д. а ты со своим DDD в вакууме иде лесом)

Adel
07.06.2018
15:50:29
ну для меня "моя бизнес-логика" и RBAC - это вообще разные вещи. тупо по принципу SRP.

но я могу быть неправ

вообще говоря спор ниочем. что называть БЛ - чисто БЛ или еще и авторизацию - смысла мало.

А вот в чем смысл есть - это где авторизацию хранить. в Application(Service) layer или в Domain layer. Для меня очевидно что в первом.

RBAC и есть часть БЛ
что скажешь? :)

Антон
07.06.2018
15:53:32
в DDD авторизация думаю на слое приложения а не домена находится

Nik
07.06.2018
15:54:01
что скажешь? :)
Допил пиво, вышел из бара, чуть позже гляну :)

Edgar
07.06.2018
15:54:04
поподробнее с этого момента

Антон
07.06.2018
15:54:10
просто тут у каждого свое мнение, один топит за DDD, другой понимает иначе

Edgar
07.06.2018
15:54:14
про авторизацию на слое приложения

а если там например на объекте только определенные люди могут выполнять действие?

Adel
07.06.2018
15:54:39
меня тут чот все начали называть адептом DDD :) хотя я по DDD ни одного приложения не сделал...

Антон
07.06.2018
15:54:58
про авторизацию на слое приложения
Заказ не должен задумываться о том кто может его отменить

Edgar
07.06.2018
15:55:01
ну либо пример с заказом и отменой только определенными людьми при определенных обстоятельствах

Страница 1453 из 2014