@Mysterion

Как реализовать динамическую загрузку actions?

Всем привет.
Как в Yii2 грамотнее всего, по вашему мнению, реализовать доступ к Actions из базы данных?
Допустим, всего существует 5 экшенов:
  • Payment
  • Settings
  • Index
  • Create
  • Delete

Количество экшенов может расти и нужно делать доступными экшены только в зависимости от услуги, которая передается им в качестве ID.
Есть некая услуга, она передается экшену в качестве GET параметра, через relations достается родитель услуги и в базе берутся экшены, доступные для этого родителя.
Как их передать контроллеру правильно?
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 2
proudmore
@proudmore
В контроллере есть метод actions(), который частично определяет список экшенов, доступных в контроллере. Вы можете все экшены вынести в Standalone классы, сделать базовый класс, внутри которого проверять, есть ли доступ к этому экшену.

Но мне было бы интересно послушать, зачем вам такое решение вообще? Есть же куча средств для контроля доступа! Да возьмите хоть RBAC.
Ответ написан
Комментировать
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
yii\filters\AccessControl
https://www.yiiframework.com/doc/api/2.0/yii-filte...

Вы передаете в него массив actions, так что остается только добавить Вашу логику формирования этого массива.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы