Задать вопрос
  • Как зарегистрировать стили в модуле Yii2?

    rifer
    @rifer Автор вопроса
    Максим, хм, про модульность понял. Ну ок, допустим делаем разделение без модулей. В каком виде мне это сделать? Я так понимаю что в urlManager я создаю (к примеру) следующее:
    '<controller>' => '<controller>', //это для /phys/index и /legal/index


    Это как пример начала работы. Тоесть у физ лица свой контроллер, у юр свой. У каждого из них есть свой раздел настроек. так называемый settings. Тоесть, у физ лица это /phys/settings а у юр это /legal/settings.
    Еще раз - это просто как пример. Тоесть далее по логике вещей settings это экшн контроллеров legal и phys. Тут все понятно. Но вот что если в разделе settings есть еще доп раздел внутри него. Тоесть к примеру /phys/settings/data. Data это раздел у которого могут быть свои внутренние экшены. К примеру /phys/settings/data/create или /phys/settings/data/update.
    Так вот как работать с такой вложенностью? Я так понимаю что надо написать что-то подобное?:
    '<controller>' => '<controller>', //это для /phys/index и /legal/index
    '<controller><action>' => '<controller><action>', //phys/settings и /legal/settings
    'phys/settings/data' => 'data/index'
    'phys/settings/data/<action>' => 'data/<action>'
                    'legal' => 'legal/index'

    Тоесть создавать Контроллер Data? со своими экшенами или как? Понимаете мне не нравится что все контроллеры в одной папке лежат, мне нужно какое-то разделение. Отделить все что связано с юр лицами от физлиз. В модульности это было проще сделать (ну как по мне). Но если есть возможность без них, то как правильно это сделать С УЧЕТОМ моей глубокой вложенности экшенов?
  • Как зарегистрировать стили в модуле Yii2?

    rifer
    @rifer Автор вопроса
    Максим, физ лица - это и есть сотрудники. А юр лица это работодатель у которых и работают эти сотрудники. Они обрабатывают заказы , принимают звонки , работают с договорами и т.д. Я наверно в предыдущем сообщении не правильно выразился. Сотрудники это физ лица, тоесть работники а юр лицо это работодатель который либо берет на работу зарегистрировавшегося сотрудника (физ лица) либо нет.
  • Как зарегистрировать стили в модуле Yii2?

    rifer
    @rifer Автор вопроса
    Максим, вы видимо недоконца поняли что за система у меня....ладно в общем все равно спасибо за уделенное время)
  • Как зарегистрировать стили в модуле Yii2?

    rifer
    @rifer Автор вопроса
    Максим, Если описать подробнее. У меня регистрируется пользователь как юр лицо - это работадатель! Потом регистрируется пользователь как физ лицо и через связи подает запрос на устройство на работу с ранее зарегистрированным юр лицом. Это юр лицо дает согласие И У СЕБЯ в интерфейсе включает этому физ лицу разделы с которыми он может работать. Это могут быть Заказы, Звонки входящие, Договора и т.д.
    Соответственно физ лицо у себя в своем интерфейсе видит что у него появились разделы выше указанные которые ему одобрило юр лицо. И всё и далее физ лицо работает с этими разделами. Это только вершухка айзберга...
    Надеюсь понятно обьяснил)
  • Как зарегистрировать стили в модуле Yii2?

    rifer
    @rifer Автор вопроса
    Максим, у меня сотрудников нету. пользователи ВСЕ разделены на физ лица и юр лица. только два направления. не может физ лицо работать И с юр лицами. Ты регистрируешься ЛИБО юр лицом ЛЮБО физ лицом. О каком сотруднике вы говорите который может работать под физ лицом С юр лицами?!?!
  • Как зарегистрировать стили в модуле Yii2?

    rifer
    @rifer Автор вопроса
    Максим, А почему нет то? Я создал два модуля /legal и /phys . В каждом из них будут свои контроллеры для работы и представления. Я настроил автонаправление после авторизации. Тоесть, если авторизовался физ лицо то его автоматически направляет на модуль /phys, если же юр лицо вошло то его направляет на /legal.
    Тоесть каждый работает на своем пути. Все пути у физ лица будут /phys/controller/action а у юр соответственно /legal/controller/action. Но при этом пути вложенностей экшеннов может быть больше.
    Почему так нельзя то? Разделение прав тут явно не поможет, потому что у юр лица и физ лица КООРДИНАЛЬНО отличаются интерфейсы. А пилить всё на контроллерах и маршрутизации через urlManager это по сути - всё в одну кашу скидывать.
  • Как зарегистрировать стили в модуле Yii2?

    rifer
    @rifer Автор вопроса
    Дмитрий, Это вы говорите, создать общий класс AssetBundle и разместить в нем код:
    public $sourcePath = '@app/modules/***';    
        public $css = [
            'css/data/data.css',
        ];


    Это работает! Все подключил и все ок.
    Но было бы лучше если можно подключить было бы файл стилей ИЗ представления по средством функции $this->registerCssFile('***');
  • Как зарегистрировать стили в модуле Yii2?

    rifer
    @rifer Автор вопроса
    Ну в моем случае лучше в модулях, у меня глобальное идет разделение сайта на два направления - это юридическое лицо и физическое. Я уже задавал тему на этот счет: Как выстроить правильную структуру контроллера YII2?
    Тоесть при авторизации если это физ лицо то идет перенаправление на путь физ лица, если юр, то на путь юр лица.... тут прикол в том что уровень вложенности экшенов может быть достаточно глубоким. Я вначале делал на контроллерах и передавал туда параметр, но в итоге все это разрастается и становится сложно этим управлять. Через модули проще и понятней, поетому и выбрал такой путь)
  • Как выстроить правильную структуру контроллера YII2?

    rifer
    @rifer Автор вопроса
    vitaly_74, ну я не имел ввиду модуль в модуле) в да, просто два модуля и там уже свои контроллеры у каждого! Функционал да, координатно отличается.
  • Как выстроить правильную структуру контроллера YII2?

    rifer
    @rifer Автор вопроса
    vitaly_74, Такой вопрос, если у меня идет разделение на сайте на юридические лица и физические. Тоесть, если залогинился физ лицо, его направляется на /phys/.... , если залогинился юр лицо, то его направляет на путь /legal/....
    если говорить моим выше написанным примером, то у физ лица настройки будут по пути /phys/settings а у юр лица /legal/settings
    Да и в принципе все действия у каждого будет через свою приставку legal или phys. Могу ли я разделить модули таким образом:
    создаю модуль по пути app\modules\phys\settings\Module
    а в роутинге к примеру пропишу что-то подобное:
    'phys/<controller>' => '<controller>',
                    'phys/<controller>/<action>' => '<controller>/<action>',
    'legal/<controller>' => '<controller>',
                    'legal/<controller>/<action>' => '<controller>/<action>',


    и соответственно в директории \modules\phys\ или \modules\legal\ я уже буду создавать необходимые модули под различные разделы ?
  • Как выстроить правильную структуру контроллера YII2?

    rifer
    @rifer Автор вопроса
    Видимо придется всётаки через модули....
    Я бы просто не сказал бы что у меня там сложный раздел, просто уровней вложенности прилично.
    Ладно, спасибо за инфу!
  • Как выстроить правильную структуру контроллера YII2?

    rifer
    @rifer Автор вопроса
    Дмитрий, Да это понятно что всеми параметрами связанным с юзером должен заниматься юзер контроллер, он есть у меня. Я спрашиваю не про это. А про то, как технически выстроить цепочку вложенности. Я может не правильно мысль преподношу или пример сложный. Давайте на другом простом примере. Вот есть сайт стран городов, регионов и т.д. Вот вы зашли на сайт, зашли в категорию Страны, далее перешли в категорию, Города, далее перешли в категорию, Регионы, потом перешли в Районы и только потом перешли в раздел Улицы. Тоесть вот такой вот длинный путь будет у пути урл:
    country/city/region/raion/street
    Вот на этом примере у нас получается что country это контроллер а city, region, raion и street это отдельные action в контроллере country? верно?
  • Как выстроить правильную структуру контроллера YII2?

    rifer
    @rifer Автор вопроса
    Дмитрий, Ну если говорить в данном разделе и если я правильно вас понял, то пока что там просто вывод различной информации о юзере и подразделами для редактирования данных юзера. Раздел Data это его паспортные данные, полное ФИО, адрес проживания и т.д. Далее в разделе Profile это параметры к примеру Изображение авы, ник, описание там и .т.д. Profile это раздел который стоит на уровне data, тоесть settings/user/profile.

    Давайте задам вопрос по другому, при пути settings/user/data или еще глубже settings/user/profile/image - settings это контроллер а остальные параметры это отдельные action?
  • Как выстроить правильную структуру контроллера YII2?

    rifer
    @rifer Автор вопроса
    Дмитрий, Ну смотрите. Если говорить языком сайта, то settings это раздел в котором есть подраздел user в котором собственно тоже есть подраздел data, последний info это я уже так, для примера дописал). Вот отсюда и получается такая цепочка. Я ее естественно и пытался выстроить как дерево что в принципе и логично. Но не понимаю как в данном случае если у тебя settings это контроллер а user это action, то дальнейшую вложенность (data) как выстраивать ?
    Вы пишите "Одно действие -> один вид.". Исходя из этого я понял что должно быть так:
    'settings/user' => 'settings/user',
    'settings/user/data' => 'settings/data',

    Тоесть одно действие, один вид.
    Но я думал возможно как-то выстраивать цепочку дерева с вложенными экшенами.
  • Как выстроить правильную структуру контроллера YII2?

    rifer
    @rifer Автор вопроса
    Знаком с модулями, не оч хочется таким образом....
  • Как выстроить правильную структуру контроллера YII2?

    rifer
    @rifer Автор вопроса
    Дмитрий, хм, ну я примерно так и реализовал...в конфиге следующие:
    '<controller>' => '<controller>',
                    '<controller>/<action>/' => '<controller>/<action>',
                    '<controller>/<action>/<url>' => '<controller>/<action>',
                    '<controller>/<action>/<url>/<req>' => '<controller>/<action>',


    Создан контроллер Settings и в нем есть action с названием user (actionUser). А вот далее я пока не понял (изучаю что вы скинули), как далее выстраивать алгоритм экшенов с учетом вложенности. У меня в экшине user передаются параметры $url и $req где из моего примера выше $url это data а $req это info.
    В моем примере это получается так:
    function actionUser($url,$req) {
        if($url=='data') {
            ....
        } elseif($url==.....)
    
    .....
    }


    Я так понимаю что в конфиге мне надо создать нечто подобное:
    'settings/user' => 'settings/user',
    'settings/user/data' => 'settings/data',
    'settings/user/profile' => 'settings/profile',


    Так получается?