Интеграция плагина CakeDC в приложение CakePHP (2.5.1)

Я новичок в CakePHP, разрабатываю веб-приложение. Я реализовал логин, регистрацию (включая рекапчу) и другие варианты ввода данных для приложения. Теперь мне нужно добавить панель администратора и возможность подтверждения по электронной почте (для подтверждения регистрации) в существующее приложение. Я нашел плагин — CakeDC/users и пытаюсь интегрировать его в приложение. После установки и загрузки файлов он показывает «Добавить пользователя», «Параметры входа». когда я добавляю пользователя, он показывает следующую ошибку:

Database Error
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'User.email_verified' in 'where clause'

SQL Query: SELECT `User`.`id` FROM `database`.`users` AS `User` WHERE `User`.`email_verified` = 0 AND `User`.`email_token_expires` < '2016-07-26 09:54:14' GROUP BY `User`.`id`

Может ли кто-нибудь сказать мне, что здесь пошло не так? какие таблицы необходимо создать в моей существующей базе данных для интеграции плагина? Я не смог найти четкой инструкции в документации CakeDC/Users.

Проблема в том, что функции, которые я реализовал раньше, теперь не работают. он показывает только функции плагина (Добавить пользователя, Войти и т. д.), которые я уже реализовал. Кажется, все функции моего приложения перекрываются плагином. Это из-за маршрутизации администратора? Как мне установить маршрутизацию для плагина администратора CakeDC/users? У меня есть UsersController(.php) в моем приложении, где я реализовал функции добавления, входа, редактирования, удаления. В плагине CakeDC/Users также есть UsersController, в котором реализованы функции добавления, входа и т. д. Создает ли это какой-либо конфликт?

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


person Tom    schedule 13.07.2016    source источник


Ответы (1)


Мне кажется, вы что-то пропустили с маршрутизацией. Поэтому cakephp пытается найти контроллер, где вы фактически вызываете метод. Вы добавили оператор маршрутов в ваш bootstrap.php, где вы загружаете плагин?

CakePlugin::load('Users', array(
'routes' => true
));

Попробуйте удалить все созданные контроллеры и методы и проверьте файл routs.php в папке Plugin/Users/Config, если вы добавили маршруты, как указано выше.

Как указано в моем последнем комментарии, sql таблицы пользователей:

CREATE TABLE IF NOT EXISTS `users` (
   `id` varchar(36) NOT NULL,
   `username` varchar(255) DEFAULT NULL,
   `slug` varchar(255) DEFAULT NULL,
   `password` varchar(128) DEFAULT NULL,
   `password_token` varchar(128) DEFAULT NULL,
   `email` varchar(255) DEFAULT NULL,
   `email_verified` tinyint(1) DEFAULT '0',
   `email_token` varchar(255) DEFAULT NULL,
   `email_token_expires` datetime DEFAULT NULL,
   `tos` tinyint(1) DEFAULT '0',
   `active` tinyint(1) DEFAULT '0',
   `last_login` datetime DEFAULT NULL,
   `last_action` datetime DEFAULT NULL,
   `is_admin` tinyint(1) DEFAULT '0',
   `group_id` int(11) DEFAULT NULL,
   `role` varchar(255) CHARACTER SET utf8 DEFAULT NULL
   `created` datetime DEFAULT NULL,
   `modified` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `users` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `email` (`email`), ADD KEY `BY_USERNAME` (`username`), ADD KEY `BY_EMAIL` (`email`);
person Max90    schedule 19.07.2016
comment
Благодарю за ваш ответ. Я добавил операторы маршрутов, как вы упомянули, и теперь ошибки исчезли. Но, похоже, функции моего приложения, которые я реализовал ранее, перекрываются этим плагином. Теперь он показывает свои собственные функции, такие как «Добавить пользователя», «Войти» и т. Д., Которые я уже реализовал. Я не смог найти четкой документации по интеграции функций подтверждения по электронной почте и панели администратора в существующее приложение. У вас есть? - person Tom; 20.07.2016
comment
У них есть документация для каждого из их выпусков (например, торт 1, 2, 3) на их github. Я думаю, расширение, которое вы ищете, объясняется здесь: документы расширения Ссылка на общую документацию: общая документация Что касается подтверждения по электронной почте, если говорить о регистрации, то это уже реализовано в плагине. Насчет админки - не знаю. Надеюсь это поможет - person Max90; 20.07.2016
comment
в документации нет четкого пояснения о том, какие таблицы базы данных нужно создавать. я также получаю здесь ошибку базы данных. Ошибка базы данных Ошибка: SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец «User.email_verified» в «предложении where» SQL-запрос: SELECT User.id FROM database.users AS User WHERE User.email_verified = 0 AND User.email_token_expires ‹ '2016-07-26 09:54:14' ГРУППА ПО User.id. у вас есть идеи, какие таблицы должны быть созданы для моей существующей базы данных? - person Tom; 26.07.2016
comment
К сожалению, нет никаких документов об этом. По крайней мере, насколько мне известно. Обычно вы просто выполняете этот оператор в своей консоли bin/cake migrations migrate -p CakeDC/Users, чтобы создать необходимые таблицы базы данных. Но я так понимаю, вы уже создали таблицу. Я добавлю sql таблицы пользователей в свой ответ. Затем вы можете проверить, что вам еще нужно, и добавить это. - person Max90; 26.07.2016
comment
в /app/plugin/Users/Controller/ есть два контроллера — UsersAppController.php и UsersController.php. Вы имели в виду, что эти два контроллера должны быть удалены? в таком случае как настроить маршрутизацию? я уже добавил оператор маршрута, который вы упомянули в /app/config/bootstrap.php - person Tom; 27.07.2016
comment
что касается таблицы, у меня уже есть таблица «пользователи» базы данных, которая является частью моего приложения. он имеет поля имени пользователя и пароля. Теперь, для плагина, должен ли я создать еще одну таблицу пользователей? или я должен добавить дополнительные поля, которые есть в вышеупомянутой таблице? - person Tom; 27.07.2016
comment
И если я хочу использовать только панель администратора плагина, какова будет конфигурация маршрутизации? - person Tom; 27.07.2016
comment
Я думаю, у вас будет меньше усилий по настройке, если вы просто добавите отсутствующие поля в свою таблицу пользователей и оставите контроллеры, сгенерированные плагином, и используете документы расширения, которые я упомянул в комментарии выше, чтобы расширить контроллеры с помощью необходимых вам функций. - person Max90; 27.07.2016
comment
Вы имеете в виду, что я должен удалить контроллеры плагина? - person Tom; 27.07.2016
comment
Нет. Я имею в виду, что вы должны сохранить контроллеры и расширить их, как указано здесь - person Max90; 27.07.2016