在 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
试试这个,如果您还有问题,请告诉我们。
当我在 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
试试这个,如果您还有问题,请告诉我们。