За последние 24 часа нас посетили 22444 программиста и 1142 робота. Сейчас ищут 660 программистов ...

НЕ работатает комманда

Тема в разделе "Yii", создана пользователем vitya1998, 4 апр 2016.

  1. vitya1998

    vitya1998 Новичок

    С нами с:
    5 ноя 2015
    Сообщения:
    73
    Симпатии:
    0
    yii rbac/init Error unknow command
    вот фигния вылазиет в консоли
    Вот тут уже создавал и в consol/config/main и common/config/main и все равно это же ошибка
    Код (PHP):
    1. <?php
    2. return [
    3.     'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
    4.     'components' => [
    5.     'authManager' => [
    6.         'class' => 'yii\rbac\PhpManager',
    7.         'defaultRoles' => ['user','pred','admin'], //здесь прописываем роли
    8.         //зададим куда будут сохраняться наши файлы конфигураций RBAC
    9.         'itemFile' => '@common/components/rbac/items.php',
    10.         'assignmentFile' => '@common/components/rbac/assignments.php',
    11.         'ruleFile' => '@common/components/rbac/rules.php'
    12.     ],
    13.         'cache' => [
    14.             'class' => 'yii\caching\FileCache',
    15.         ],
    16.     ],
    17. ];
    18.  
    19.  
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.554
    Симпатии:
    1.754
  3. vitya1998

    vitya1998 Новичок

    С нами с:
    5 ноя 2015
    Сообщения:
    73
    Симпатии:
    0
    я установил и перечитал
     
  4. vitya1998

    vitya1998 Новичок

    С нами с:
    5 ноя 2015
    Сообщения:
    73
    Симпатии:
    0
    все равно не робит
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.554
    Симпатии:
    1.754
    Чего установили? Покажите контроллер, раз. Два, что значит "не работает"? Ошибки пишет? Ещё чегой-нибудь?
     
  6. vitya1998

    vitya1998 Новичок

    С нами с:
    5 ноя 2015
    Сообщения:
    73
    Симпатии:
    0
    Это файл PhpManager.php он находится в папке консоль\контролер
    Код (PHP):
    1. <?php
    2. namespace console\controllers;
    3. use Yii;
    4. use yii\console\Controller;
    5. use common\components\rbac\UserRoleRule;
    6. class RbacController extends Controller
    7. {
    8.     public function actionInit()
    9.     {
    10.         $auth = Yii::$app->authManager;
    11.         $auth->removeAll(); //удаляем старые данные
    12.         //Создадим для примера права для доступа к админке
    13.         $dashboard = $auth->createPermission('dashboard');
    14.         $dashboard->description = 'Админ панель';
    15.         $auth->add($dashboard);
    16.         //Включаем наш обработчик
    17.         $rule = new UserRoleRule();
    18.         $auth->add($rule);
    19.         //Добавляем роли
    20.         $user = $auth->createRole('user');
    21.         $user->description = 'Пользователь';
    22.         $user->ruleName = $rule->name;
    23.         $auth->add($user);
    24.         $pred = $auth->createRole('pred');
    25.         $pred->description = 'Предпрениматель';
    26.         $pred->ruleName = $rule->name;
    27.         $auth->add($pred);
    28.         //Добавляем потомков
    29.         $auth->addChild($pred, $user);
    30.         $auth->addChild($pred, $dashboard);
    31.         $admin = $auth->createRole('admin');
    32.         $admin->description = 'Администратор';
    33.         $admin->ruleName = $rule->name;
    34.         $auth->add($admin);
    35.         $auth->addChild($admin, $pred);
    36.     }
    37. }
    38.  
    se

    Вот этот файл UserRoleRole.php он находится в common/componennts/rbac

    Код (PHP):
    1. <?php
    2. namespace common\components\rbac;
    3. use Yii;
    4. use yii\rbac\Rule;
    5. use yii\helpers\ArrayHelper;
    6. use common\models\User;
    7. class UserRoleRule extends Rule
    8. {
    9.     public $name = 'userRole';
    10.     public function execute($user, $item, $params)
    11.     {
    12.         //Получаем массив пользователя из базы
    13.         $user = ArrayHelper::getValue($params, 'user', User::findOne($user));
    14.         if ($user) {
    15.             $role = $user->role; //Значение из поля role базы данных
    16.             if ($item->name === 'admin') {
    17.                 return $role == User::ROLE_ADMIN;
    18.             } elseif ($item->name === 'pred') {
    19.                 //moder является потомком admin, который получает его права
    20.                 return $role == User::ROLE_ADMIN || $role == User::ROLE_PRED;
    21.             } 
    22.             elseif ($item->name === 'user') {
    23.                 return $role == User::ROLE_ADMIN || $role == User::ROLEPRED
    24.                 || $role == User::ROLE_USER;
    25.             }
    26.         }
    27.         return false;
    28.     }
    29. }
    30.  
    31.  
    32.  
    но и это я писал
    Код (PHP):
    1. <?php
    2. return [
    3.     'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
    4.     'components' => [
    5.     'authManager' => [
    6.         'class' => 'yii\rbac\PhpManager',
    7.         'defaultRoles' => ['user','pred','admin'], //здесь прописываем роли
    8.         //зададим куда будут сохраняться наши файлы конфигураций RBAC
    9.         'itemFile' => '@common/components/rbac/items.php',
    10.         'assignmentFile' => '@common/components/rbac/assignments.php',
    11.         'ruleFile' => '@common/components/rbac/rules.php'
    12.     ],
    13.         'cache' => [
    14.             'class' => 'yii\caching\FileCache',
    15.         ],
    16.     ],
    17. ];
    18.  
    19.  
    20.  
    21.  
    по сути все по инструкций я даже видеоролик находил, но в косяке
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.554
    Симпатии:
    1.754
    Почему класс RbacController находится в файле PhpManager.php?
     
  8. vitya1998

    vitya1998 Новичок

    С нами с:
    5 ноя 2015
    Сообщения:
    73
    Симпатии:
    0
  9. bikerlex

    bikerlex Активный пользователь

    С нами с:
    2 дек 2014
    Сообщения:
    344
    Симпатии:
    40
    По инструкции ты врядли чему-то научишься. Максимум копировать.
    В этой инструкции класс RbacController лежит в файле RbacController.php, а у тебя нет.
    Имя класса должно совпадать с именем файла.
    Может тебе с изучения основ ООП начать?
     
  10. vitya1998

    vitya1998 Новичок

    С нами с:
    5 ноя 2015
    Сообщения:
    73
    Симпатии:
    0
    спасибо не увидел. ООП и так знаю
     
  11. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.554
    Симпатии:
    1.754
    Тогда с основ Yii2, который придерживается стандартов PSR, и поэтому имя класса и имя файла, в котором он лежит, всегда обязано совпадать.