Anton
🙂
Maksim (Ellrion)
так try cath же прекрасно работает там что вы тут мусолите?
Anton
ну... по заявлениям ТС...
Maksim (Ellrion)
там не exception, а warning
он преобразуется в эксепшен хендлером
Maksim (Ellrion)
Anton
Вариант огонь! Но вдруг там у ТС нельзя такое делать 🙂
Denis
Ага, спасибо я уже решил вопрос.
Anton
Ага, спасибо я уже решил вопрос.
А какой у тебя PHP? У меня в 7ке заглушает...
Anton
Даже на 400 bad request
Denis
А какой у тебя PHP? У меня в 7ке заглушает...
7.1. Уже ушел от того когда, кот еррорил, но если оч надо откачусь и выкачу пример сюда заново.
Сергей
подскажите у меня роут имеет вот такой 'middleware' => ['auth', 'role:manager', 'role:admin'] как сделать так чтобы юзер manager имел доступ к пути, сейчас не имеет из за того что нет админа
Сергей
вот красавчик) спасибо)
SarcasmIO
можно вообще \Error
Евгений
вот красавчик) спасибо)
красачик за тебя посмотрел доку. или даже не глядя догадался как можно проверить
Евгений
правильно
Сергей
красачик за тебя посмотрел доку. или даже не глядя догадался как можно проверить
Ну и что здесь такого? все рано или поздно были на низком уровне и учаться со временем
Евгений
то есть это нормально других людей просить за себя смотреть в доку?
Евгений
скажи, это было в доке?
Сергей
скажи, это было в доке?
через запятую не видел
Сергей
скажи, это было в доке?
там обычный пример Route::put('post/{id}', function ($id) { // })->middleware('role:editor');
Евгений
какой пакет юзаешь для ролей?
Сергей
Igor
Есть бд. В бд есть таблица с фильмами, странами (1 ко многим), студиями(1 ко ногим), жанрами (многие ко многим), актёрами (многие ко многим). Нужно получить список фильмов с определёнными странами, студиями, жанрами и актёрами. Со связями 1 ко многим легче - т.к. фильмы и идентификаторы находятся в 1 таблице. Но кол-во выбранных стран и студий может разниться . Делать несколько запросов в бд и совмещать результаты? Например: $films = array(); foreach ($counties as $country) { $films = array_merge ($films, Films::where('country_id', $country) } Выходит очень дофига запросов к бд. А если посмотреть на то что ещё есть связи многие ко многим дак это вообще печаль получается, ибо связь с основной таблицей там имется только через вспомогательные по ключам. При этом всём нужно всё это дело сортировать по дате / году выпуска / алфавиту / рейтингу и т.п. Вроде как в ларавеле есть функции облегчающие и оптимизирующие всё это дело. Подскажите пожалуйста как это всё грамотно сделать?
Сергей
ну кстати с таким вариантом если у админа нет менеджера в ролях то не пускает)
Сергей
пускает)
Сергей
меняю местами и по разному работает 'role:admin,manager']
Сергей
если менагер первый то манагера пускает а просто админа нет и наоборот если админ первый то просто манагера не пускает)
Maksim (Ellrion)
role и так его мидл
Евгений
Есть бд. В бд есть таблица с фильмами, странами (1 ко многим), студиями(1 ко ногим), жанрами (многие ко многим), актёрами (многие ко многим). Нужно получить список фильмов с определёнными странами, студиями, жанрами и актёрами. Со связями 1 ко многим легче - т.к. фильмы и идентификаторы находятся в 1 таблице. Но кол-во выбранных стран и студий может разниться . Делать несколько запросов в бд и совмещать результаты? Например: $films = array(); foreach ($counties as $country) { $films = array_merge ($films, Films::where('country_id', $country) } Выходит очень дофига запросов к бд. А если посмотреть на то что ещё есть связи многие ко многим дак это вообще печаль получается, ибо связь с основной таблицей там имется только через вспомогательные по ключам. При этом всём нужно всё это дело сортировать по дате / году выпуска / алфавиту / рейтингу и т.п. Вроде как в ларавеле есть функции облегчающие и оптимизирующие всё это дело. Подскажите пожалуйста как это всё грамотно сделать?
Film::whereHas(....).....
Maksim (Ellrion)
@kardashov ты лучше на основании ролей определи абилки (или политики) и юзай can
Евгений
Film::whereHas('countries', function($query) use ($countriesIds) { $query->whereIn('id', $countriesIds); })->whereHas('genres', ....)....
Maksim (Ellrion)
похоже на то)
Евгений
Евгений
сделай тут перед id dd($role);
Maksim (Ellrion)
explode только наверное
Сергей
у меня api как я can смогу юзать?
Евгений
public function handle($request, Closure $next, array $roles) попробуй и сделай dd($roles)
Igor
Film::whereHas('countries', function($query) use ($countriesIds) { $query->whereIn('id', $countriesIds); })->whereHas('genres', ....)....
Хмм, интересно, можно просто массив передать($countriesIds)? Вот только жанры в другой таблице лежат, many to many же - таблицы ganres и ganre_film
Евгений
всё равно, там через связь вытаскивается
Maksim (Ellrion)
у меня api как я can смогу юзать?
а какая разница апи или не апи?
Евгений
просто массив да
Сергей
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
Евгений
ну тогда верни стринг и делай explode
Сергей
а какая разница апи или не апи?
я к сожалению не видел реализации с can, посмотрю тогда)
Igor
всё равно, там через связь вытаскивается
любопытно, спасибо большое за помощь. В итоге это через 1 запрос выполнится?
Сергей
ну тогда верни стринг и делай explode
так в $role приходит 1 роль только а не все
Евгений
ты dd($role); делал и там одна роль?
Евгений
в каом то проекте я делал мидлварю с ролями, щас попробую вспомнить где и посмотрю
Igor
а вот не знаю чото
пхпмуадмин пишет логи sql запросов? Можно от туда посмотреть
Евгений
смотри через дебагбар
Maksim (Ellrion)
так в $role приходит 1 роль только а не все
в варианте role:foo,bar тебе придет "foo,bar" и надо самому разбивать же
Сергей
ну кстати да) массив получается
Евгений
а тьфу блин, я забыл про вариант с ...
Евгений
так и делал у себя
Сергей
ну дальше всё понятно уже как делать)
Сергей
а что вы юзаете для ролей?
Евгений
примерно то же самое
Сергей
Евгений
хотя у меня в последних проектах кроме роли админа ничего не было, поэтому там намного проще) у юзера is_admin поле и всё
Сергей
а вот с ролями лучше держать массив ролей у юзера или одну роль? как тут правильнее?
Евгений
https://github.com/romanbican/roles - вот один раз юзал пакет, но в итоге очень мало что из него использовал. Да и давно это было. И пакет сам по всей видимости уже не поддерживается
Anonymous
топлю за bouncer
Anonymous
но сам какого то хера юзаю laratrust
Сергей
а если ты фрилансер и ты сам себя просишь?)
Maksim (Ellrion)
фигня все эти пакеты. или юзать половину не будешь или переделаешь половину под себя в итоге
Anton
а я entrust юзал )
Maksim (Ellrion)
видимо мы по разному понимаем этот термин тогда
Maksim (Ellrion)
тебе говорят что отменять заказы могут только менеджер ведущий клиента и директор на всякий случай. это не бизнес логика?
Nik
RBAC и есть часть БЛ
Maksim (Ellrion)
бл - " совокупность правил, принципов, зависимостей поведения объектов предметной области (области человеческой деятельности, которую система поддерживает). Иначе можно сказать, что бизнес-логика — это реализация правил и ограничений автоматизируемых операций."
Maksim (Ellrion)
контроль доста это те самые ограничения операций. на равне с правилами валидации и т.д. а ты со своим DDD в вакууме иде лесом)
Anton
в DDD авторизация думаю на слое приложения а не домена находится
Nik
Допил пиво, вышел из бара, чуть позже гляну :)
MAGI
поподробнее с этого момента
Anton
просто тут у каждого свое мнение, один топит за DDD, другой понимает иначе