2014-09-15 2 views
2

Я новичок в ZF2 и bjyauthorize - это таким образом, в надежде, что это глупая ошибка с моей стороны: DПолучить белый экран при добавлении охранников bjyauthorize

У меня настроить ZF2 скелет приложения и zfcUser успешно и Я пытаюсь добавить bjyAuthorize в микс. Я также использую тип подключения Zend/Db к mySQL - NOT DOCTRINE (: D). Используемыми мной версиями являются PHP (5.5), ZF2 (2.3. *), ZfcUser (1.2.1), bjyAuthorize (1.4.0).

Я выполнил инструкции, указанные в письме в GitHub Readme. Это не займет много времени, чтобы понять, что на примере «bjyauthorize.global.php» файл там содержит слишком много параметров (в качестве примера), а также имеет неправильную ссылку поля под "\ BjyAuthorize \ Provider \ Роль \ ZendDb :: класс "(" role_id "s/b" roleid ").

В принципе, как только я раскомментирую на основе правил на основе маршрутов или контроллеров на основе правил в моем файле конфигурации (я не намерен делать то и другое - просто хочу работать) Я получаю белый экран - никакое сообщение об ошибке не будет полезно - при попытке доступа к домашней странице моих скелетных приложений. Я волнуюсь, поэтому это синтаксическая ошибка PHP с моей стороны.

Я также включил ZendDeveloperTools и даже панель инструментов на нижнем колонтитуле появляется, когда я получаю эту ошибку.

Вот мой конфигурационный файл:

<?php 

return [ 
    'bjyauthorize' => [ 

     // set the 'guest' role as default (must be defined in a role provider) 
     'default_role' => 'guest', 

     /* this module uses a meta-role that inherits from any roles that should 
     * be applied to the active user. the identity provider tells us which 
     * roles the "identity role" should inherit from. 
     * 
     * for ZfcUser, this will be your default identity provider 
     */ 
     'identity_provider' => \BjyAuthorize\Provider\Identity\ZfcUserZendDb::class, 

     /* role providers simply provide a list of roles that should be inserted 
     * into the Zend\Acl instance. the module comes with two providers, one 
     * to specify roles in a config file and one to load roles using a 
     * Zend\Db adapter. 
     */ 
     'role_providers' => [ 
      // this will load roles from the user_role table in a database 
      // format: user_role(role_id(varchar], parent(varchar)) 
      \BjyAuthorize\Provider\Role\ZendDb::class => [ 
       'table'     => 'user_role', 
       'identifier_field_name' => 'id', 
       'role_id_field'   => 'roleid', 
       'parent_role_field'  => 'parent_id', 
      ], 
     ], 

     /* Currently, only controller and route guards exist 
     * 
     * Consider enabling either the controller or the route guard depending on your needs. 
     */ 
     'guards' => [ 
      /* If this guard is specified here (i.e. it is enabled], it will block 
      * access to all controllers and actions unless they are specified here. 
      * You may omit the 'action' index to allow access to the entire controller 
      */ 
//    \BjyAuthorize\Guard\Controller::class => [ 
//     ['controller' => 'zfcuser', 'roles' => ['guest']], 
//     ['controller' => ['Application\Controller\Index'], 'roles' => ['guest']], 
//    ], 

//    /* If this guard is specified here (i.e. it is enabled], it will block 
//    * access to all routes unless they are specified here. 
//    */ 
//    \BjyAuthorize\Guard\Route::class => [ 
//     ['route' => 'zfcuser', 'roles' => ['user']], 
//     ['route' => 'zfcuser/logout', 'roles' => ['user']], 
//     ['route' => 'zfcuser/login', 'roles' => ['guest']], 
//     ['route' => 'zfcuser/register', 'roles' => ['guest']], 
//     // Below is the default index action used by the ZendSkeletonApplication 
//     ['route' => 'home', 'roles' => ['guest', 'user']], 
//    ], 
     ], 
    ], 
]; 

Когда я бегу, как кодируются выше без охраны, я могу войти через сайт/пользователя/логин и Zend Dev ToolBar показывает мне правильную роль для этого пользователя. Это хотя бы положительно.

С удовольствием предоставляем любую дополнительную информацию или настройки - просто пытаемся учиться.

+0

После "играть" с настройками, я обнаружил, что, если я заменю код: \ BjyAuthorize \ Provider \ Роль \ ZendDb :: класс => [ 'стол' => 'USER_ROLE', ' identifier_field_name»=> 'ID', 'role_id_field' => 'идентификатор роли', 'parent_role_field' => 'parent_id', ], с: \ BjyAuthorize \ Provider \ Роль \ Config :: класс => [ 'guest' => [], 'user' => ['children' => [ 'admin' => [], ]], ], Он отлично работает, поэтому возникает вопрос, почему он не может получить роли из БД .... –

ответ

0

ОК, так что теперь я чувствую себя совершенно глупо.

ДБ схема, bjyauthorize корабли имеет поле « Идентификатор роли» - в моем коде выше я не принимал во внимание чувствительность к регистру и имел « Идентификатор роли». Изменилось то, и все работает отлично.

Смежные вопросы