когда я пытался запустить команду php bin/console doctrine:generate:entities App:Center в symfony 4.0.6, я получаю эту ошибку:
Can't find base path for "App\Entity\Center" (path: "/home/USER/foo/bar/src/Entity", destination: "/home/USER/foo/bar/src/Entity").
Center - это имя моей сущности!
Как я могу это исправить?
@Preciel В корне каталога проекта я запускаю эту команду и мои объекты хранятся в src / Entity / EntityName.php
Это не отвечает на мой текущий вопрос ... Поскольку две команды закрываются, я спрашиваю вас, пытались ли вы сгенерировать объект и пытались ли обновить существующий, чтобы выполнить геттеры / сеттеры
@Preciel О, извините, я хочу сгенерировать методы получения и установки (обновить) - когда я пытаюсь использовать phpstrom, я не могу создать addElement и т. д.
Вы пытаетесь очистить кеш разработчика ?! Иногда мешает обновиться ... Ваш проект новый ?! Вы уверены, что права доступа к файлам хорошие ?! Вы в хорошем каталоге ?! (Извините, просто проверяю разные вещи, поскольку они самые обычные)
@Preciel Я очистил кеш разработчика и снова запустил его, но я снова получаю эту ошибку, а права доступа к файлу -rw-rw-rw- с пользователем и группой USER, и мой проект новый, не обновлен с symfony 3
пользователь и группа кажутся неправильными ... по умолчанию веб-пользователь - www-data. Вы меняли пользователя apache / nginx?
@Preciel Я изменил пользователя и группу Center Entity на www-data (apache) и не решил
Это неправильный способ продолжения ... Не могли бы вы запустить это в консоли, пожалуйста: ps aux | egrep '(apache|httpd)' и скажите мне, какие пользователи показаны
@Preciel это вывод: paste.ofcode.org/wTF72qG4KtpEWjfVqibL8H
Последний вопрос, каков ваш проектный путь?
@Preciel в этом каталоге: /home/alireza/Projects/www/Dornash/1.1.0/Project




Разработчики Doctrine не рекомендуют команды генерации для Symfony 4. Причина, по которой это не работает для вас, заключается в том, что команда жестко запрограммирована для поиска целевого каталога в
projectRoot/src/{namespace}/{App}Bundle/Entity/{Center.php}
но структура каталогов Symfony 4 отличается от этой, поэтому он не может ее найти. Если вы настроены на использование команды, вы, вероятно, могли бы расширить ее и создать свой собственный, в котором вы могли бы изменить путь (пути) назначения для своих объектов. Вы можете просто пропустить командную часть и самостоятельно сгенерировать геттеры и сеттеры.
Проблема доктрины: https://github.com/doctrine/DoctrineBundle/issues/729
Проблема Symfony: https://github.com/symfony/symfony-docs/issues/8893
От разработчиков Doctrine: https://github.com/doctrine/DoctrineBundle/pull/790
о, это очень плохо, но так сложно создать методы addElement, removeElement и т. д. Я создал свои методы получения и установки с помощью phpstrom generate, но я не знаю, как это сделать для других методов
Методы addElement и removeElement предназначены для случаев, когда у вас есть ассоциации с вашим Entity. Проверьте демонстрационные проекты на github, они есть у Symfony, и посмотрите, как они там обрабатываются, и используйте их в своих проектах.
Итак, судя по различным вопросам, я думаю, что ваша первая проблема - это права доступа к файлам ...
Между тем вам нужно сначала исправить права доступа к файлам. Вот как это сделать.
chown /home/alireza/Projects/www/ www-data:www-data /
find /home/alireza/Projects/www/ -type d -exec chmod 0755 "{}" \;
find /home/alireza/Projects/www/ -type f -exec chmod 0664 "{}" \;
find /home/alireza/Projects/www/ -type d -exec chmod g-s "{}" \;
find /home/alireza/Projects/www/ -type d -exec chmod g+s "{}" \;
Поскольку я предполагаю, что www/ - это место, где хранятся все ваши проекты, я остановил путь в папке www/. Таким образом, он исправит права доступа к файлам для всех ваших проектов.
Также не забудьте добавить вашего текущего пользователя в группу www-data.
usermod -a -G www-data user_name
Попробуйте это и сообщите нам, если у вас все еще есть проблема.
np @ A.Seddighi ... Хотя я не думаю, что на этом ваши проблемы решатся ... Обязательно проверьте ответ domagoj03, может оказаться полезным
Где вы пытаетесь сгенерировать класс ?! Или обновить одну?