在 symfony 4 中生成实体(方法)

Generate entity in symfony 4 (methods)

当我在 symfony 4.0.6 中尝试 运行 命令 php bin/console doctrine:generate:entities App:Center 时,我得到了这个错误:

Can't find base path for "App\Entity\Center" (path: "/home/USER/foo/bar/src/Entity", destination: "/home/USER/foo/bar/src/Entity").

Center是我的实体名!

我该如何解决这个问题?

Doctrine 开发人员正在弃用 Symfony 4 的生成命令。它对您不起作用的原因是因为该命令被硬连线以在 projectRoot/src/{namespace}/{App}Bundle/Entity/{Center.php} 但 Symfony 4 的目录结构与此不同,因此无法找到它。如果您 dead-set 使用该命令,您可能可以扩展它并创建您自己的命令,您可以在其中更改实体的目标路径。您可以跳过命令部分并自行生成 getter 和 setter。

学说问题:https://github.com/doctrine/DoctrineBundle/issues/729

Symfony 问题:https://github.com/symfony/symfony-docs/issues/8893

来自 Doctrine 的维护者: https://github.com/doctrine/DoctrineBundle/pull/790

所以,从各种问题来看,我认为你的第一个问题是文件权限...

同时,您需要先更正您的文件权限。 以下是操作方法。

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

试试这个,如果您还有问题,请告诉我们。