Сгенерировать объект в symfony 4 (методы)

когда я пытался запустить команду 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 25.03.2018 00:28

@Preciel В корне каталога проекта я запускаю эту команду и мои объекты хранятся в src / Entity / EntityName.php

A.Seddighi 25.03.2018 00:30

Это не отвечает на мой текущий вопрос ... Поскольку две команды закрываются, я спрашиваю вас, пытались ли вы сгенерировать объект и пытались ли обновить существующий, чтобы выполнить геттеры / сеттеры

Preciel 25.03.2018 00:32

@Preciel О, извините, я хочу сгенерировать методы получения и установки (обновить) - когда я пытаюсь использовать phpstrom, я не могу создать addElement и т. д.

A.Seddighi 25.03.2018 00:35

Вы пытаетесь очистить кеш разработчика ?! Иногда мешает обновиться ... Ваш проект новый ?! Вы уверены, что права доступа к файлам хорошие ?! Вы в хорошем каталоге ?! (Извините, просто проверяю разные вещи, поскольку они самые обычные)

Preciel 25.03.2018 00:36

@Preciel Я очистил кеш разработчика и снова запустил его, но я снова получаю эту ошибку, а права доступа к файлу -rw-rw-rw- с пользователем и группой USER, и мой проект новый, не обновлен с symfony 3

A.Seddighi 25.03.2018 00:42

пользователь и группа кажутся неправильными ... по умолчанию веб-пользователь - www-data. Вы меняли пользователя apache / nginx?

Preciel 25.03.2018 00:43

@Preciel Я изменил пользователя и группу Center Entity на www-data (apache) и не решил

A.Seddighi 25.03.2018 00:46

Это неправильный способ продолжения ... Не могли бы вы запустить это в консоли, пожалуйста: ps aux | egrep '(apache|httpd)' и скажите мне, какие пользователи показаны

Preciel 25.03.2018 00:47

@Preciel это вывод: paste.ofcode.org/wTF72qG4KtpEWjfVqibL8H

A.Seddighi 25.03.2018 00:49

Последний вопрос, каков ваш проектный путь?

Preciel 25.03.2018 00:54

@Preciel в этом каталоге: /home/alireza/Projects/www/Dornash/1.1.0/Project

A.Seddighi 25.03.2018 00:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
12
2 703
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Разработчики 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, но я не знаю, как это сделать для других методов

A.Seddighi 25.03.2018 01:06

Методы addElement и removeElement предназначены для случаев, когда у вас есть ассоциации с вашим Entity. Проверьте демонстрационные проекты на github, они есть у Symfony, и посмотрите, как они там обрабатываются, и используйте их в своих проектах.

Domagoj 25.03.2018 01:08

Итак, судя по различным вопросам, я думаю, что ваша первая проблема - это права доступа к файлам ...

Между тем вам нужно сначала исправить права доступа к файлам. Вот как это сделать.

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, может оказаться полезным

Preciel 25.03.2018 01:09

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