Неустранимая ошибка при перемещении Pimcore с сервера на локальный

Я переместил все свои файлы pimcore и базу данных с сервера на мой локальный хост и внес необходимые изменения в website/var/config/system.xml, Админ работает, но во внешнем интерфейсе отображается ошибка:

Fatal error: Call to a member function getFielddefinitions() on a non-object in /var/www/html/pimcore/pimcore/models/Object/Localizedfield/Resource.php on line 179

Эта строка кода выдает ошибку:

$this->model->getClass()->getFielddefinition("localizedfields")->getFielddefinitions()

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

В целях тестирования я установил новый проект pimcore в моей локальной системе, и он работает отлично.

Могу ли я внести какие-либо изменения в мою базу данных? Как я могу успешно запустить свой проект на локальном компьютере?

4 ответа

Решение

Ошибка возникает, когда уже есть объекты, использующие класс.

Решение

  1. Авторизуйтесь для входа в систему как администратор.
  2. Идти к Settings > Object > Classes
  3. Для каждого из классов в левом дереве нажмите на них, а затем нажмите Сохранить в правом нижнем углу. (Если не удается сохранить, просто создайте новый класс, нажав кнопку Добавить новый класс)

Теперь попробуйте загрузить веб-интерфейс. Это будет работать.

Pimcore использует представления базы данных для хранения данных объектов. При экспорте базы данных в определениях представлений также будет указатель SECURITY DEFINER.

/*!50013 DEFINER=`prod-user`@`%` SQL SECURITY DEFINER */

  1. ВАРИАНТ: решение Vinot VT должно работать Вы можете получить то же самое с помощью команды:

php pimcore/cli/console.php deployment:classes-rebuild

  1. ВАРИАНТ: Используйте то же имя пользователя базы данных в вашей локальной среде env 'prod-user', что полезно, если вы будете много импортировать базу данных prod

  2. ВАРИАНТ: заменить DEFINER =prod-user@% с DEFINER =local-user@% перед импортом базы данных

Вы можете:

  • установите 1 в config.xml - это должно показать ошибку

  • если это не помогло, проверьте журнал ошибок apache и / или php.

Нам нужно увидеть фактическую ошибку (как уже указывал Винод).

Я могу предположить, хотя:

Идентификационные данные базы данных (имя пользователя БД) идентичны? Если нет, вам может потребоваться удалить DEFINER SECURITY из дампа БД. Смотрите: Удалите предложение DEFINER из MySQL Dumps для подсказок, как это сделать.

Другим источником ошибки может быть кеш. Используете ли вы по умолчанию файловый кэш Pimcore? Если это так, попробуйте удалить все файлы с сайта /var/cache и website/var/tmp

Дайте нам знать, как это получилось.

Другие вопросы по тегам