Snr*_*oki 101
我有同样的问题,你必须这样做:
php app/console doctrine:mapping:convert metadata_format \
./src/App/MyBundle/Resources/config/doctrine \
--from-database \
--filter="Yourtablename"
Run Code Online (Sandbox Code Playgroud)
然后
php app/console doctrine:mapping:import AppMyBundle \
metadata_format --filter="Yourtablename"
Run Code Online (Sandbox Code Playgroud)
metadata_format您要生成的文件结尾在哪里(例如xml,yml,annotation)
最后
php app/console doctrine:generate:entities AppMyBundle --no-backup
Run Code Online (Sandbox Code Playgroud)
像这样的学说只会加载你需要的实体.只需要小心过滤器就必须使用CamelCase!
希望对你有帮助
jpb*_*jpb 28
对于第三个命令,doctrine不断重新生成所有Entity文件.通过在bundle之后添加实体名称,它只生成了我感兴趣的实体.
php app/console doctrine:generate:entities AppMyBundle:Yourtablename --no-backup
Run Code Online (Sandbox Code Playgroud)
Dun*_*ung 12
Symfony 2.7选项注释和[/ xml/yml]的简单工作解决方案,请参阅http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html
通过3个步骤执行3个命令:
$ php app/console doctrine:mapping:import --force AppBundle xml --filter="Meeting"
Run Code Online (Sandbox Code Playgroud)
(注:如果你的数据库名称是my_meeting您需要将其更改为MyMeeting在filter="MyMeeting".教义找到你的表名.这是因为学说总会剥去下划线和骆驼的情况下添加到您的表名如果没有,你会得到这个错误. :"数据库没有任何映射信息".)
$ php app/console doctrine:mapping:convert annotation ./src/AppBundle/Entity --from-database --filter="Meeting"
Run Code Online (Sandbox Code Playgroud)
(注意:确保namespace AppBundle\Entity;在Meeting.php类文件中具有如下所示:
<?php
/**
* Created by PhpStorm.
* User:
* Date: 03-Sep-2015
* Time: 3:23 PM
*/
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
Run Code Online (Sandbox Code Playgroud)
如果没有添加.)
哪里:
请务必检查以下目录:
SRC \的appbundle /资源/配置/教义/ Meeting.orm.xml
并且确保您只有要创建实体类文件的表的.xml文件,而没有其他文件.然后运行以下命令,为您之前创建的实体类生成get和set方法
$ php app/console doctrine:generate:entities AppBundle:Meeting --no-backup
注意2:作为最后一步,您必须删除xml doctrine orm db文件 src\AppBundle/Resources/config/doctrine/VisitorData.orm.xml
它对我很有用.
有关说明,请阅读:http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html
@ fyrye目前隐藏的评论值得信赖,想要加上这个,所以其他人不会错过.这是方法:
/** @var \Doctrine\DBAL\Connection $connection */
$config = $connection->getConfiguration();
// for excluding an specific table
$config->setFilterSchemaAssetsExpression('/^(table_to_reverse_engineer_1|table_to_reverse_engineer_2).*$/');
Run Code Online (Sandbox Code Playgroud)
来源:https://coderwall.com/p/jofhdw/doctrine-tell-which-tables-to-work-with
由于存在大量错误定义的旧表,因此在运行以下命令时遇到问题
php ./vendor/bin/doctrine orm:convert-mapping --force --from-database annotation ./src/UI/Entity/
Run Code Online (Sandbox Code Playgroud)
事实证明,--filter标志仅在它从所有表中读取元数据后过滤,如果它们没有主键或有其他问题,将导致命令失败
使用Symfony 3时,没有一个答案对我来说是非常正确的。我最终做了:
php bin/console doctrine:mapping:import --force MyBundle xml --filter="MyTable"
php bin/console doctrine:mapping:convert annotation ./src --filter="MyTable"
php bin/console doctrine:generate:entities MyBundle:MyTable --path ./src
Run Code Online (Sandbox Code Playgroud)