是否有任何方法可以告诉您,我在不使用此命令的情况下自动创建架构表:
doctrine:schema:update --force
我不确定您想做什么,但是如果您想从php代码中执行,您可以检查条令命令的工作方式并复制代码。你可以在这里找到它:
vendor/symfony/src/Symfony/Bundle/DoctrineBundle/Command/CreateDatabaseDoctrineCommand.php
如果您检查execute方法,您将看到它是如何完成的。显然,您需要通过
我有以下表格:电影、类别、电影和实体:
Film.php
<?php
namespace Admin\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(name="films")
*/
class Film{
/*
用例如下:我有一个地址表,其中有一个fk_id字段和一个type字段。该表可以与其他几个表关联。例如,如果我想存储一个人的地址,我会将fk_id字段设置为person_id值,并将type字段设置为“person”。对于公司,我将fk_id设置为company_id值,并键入“company”。等等
如果我想在Person实体上定义一对一的关系,有可能吗?或者您绝对只需要两个表之间的直接关系吗?我怀疑是这样,但我想我会确定的
其次,如果不可能,是否有任何方法可以运行查询(使用DQL或QueryB
当我尝试在doctrine2(zf2)中持久化实体时,例如:
$repository = $this->getEntityManager()->getRepository('Application\Entity\Publications');
$oPublications = new \Application\Entity\Publications();
$oPublications->setContent("some text");
$repo
我希望我下面的条令2查询按类别有超过1个订单
但是,我注意到原则2仅支持查询的最后一个订单,即:
有人知道条令2是否支持
如果是,正确的格式是什么
我的问题
谢谢查询生成器允许您使用以下结构添加订单:
生成的SQL中的顺序是自然顺序:首先是orderBy,然后是addOrderBy,顺序与您在查询中定义的顺序相同。@PaulKendal如果回答了您的问题,请接受
->orderBy('u.qualityOfPictures', 'DESC');
$qb = $this->qu
我试图在实体类中使用doctrine listener prePersist,但它不起作用
我的实体类是
<?php
namespace Application\Entity;
use Doctrine\ORM\Mapping as ORM;
use Zend\Form\Annotation;
use Application\Entity\AbstractEntity;
use Freedom\Logger\InfoLogger;
use Application\Entity\User
但我犯了个错误
$qb = $this->getDoctrine ()->getEntityManager()->createQueryBuilder();
$qb->delete('MainBundle:StatisticUser', 'u');
$qb->where($qb->expr()->in('sessionid', array_keys($sessionidsToTruncate)));
var_dump($q
我有以下疑问:
$this->qb->select('partial transporter.{id,name,transporterType,routes}')
->from($this->entity, 'transporter', null)
->addSelect('partial country.{id,name}')
->addSelect('partial county.{i
在DQL的ORDER BY子句中使用条令2 ORM实现动态排序时,我遇到了一个错误
以下是我的代码片段:
$queryBuilder=$categoryEntity->createQueryBuilder('category');
$queryBuilder->distinct();
$queryBuilder->join('Category\Entity\CategoryName','Category\u name','WITH','Category.id=Category\u name.Ca
我使用条令从数据库中生成实体
vendor/bin/doctrine orm:convert-mapping --from-database yml configuration/yaml
我成功地导出到Yaml中,然后用
vendor/bin/doctrine orm:generate-entities entities/
我看到注释不完整,但我还看到有一个参数——generate annotations
我使用命令行:
vendor/bin/doctrine orm:generate
假设我有两个实体:Entity1和Entity2。Entity1有许多Entity2
我可以在doctrine2中进行查询,以选择所有Entity1及其内部Entity2按某个字段排序吗
//I'd need this query but with the Entity2s ordered within each Entity1
SELECT e1,e2 FROM 'BundleName:Entity1' e1 JOIN e.entity2s e2;
我需要在Entity2中没有@OrderB
我使用的是DBALV2.5.0,我想执行一个简单的update语句。在文档中写到,我应该使用executeUpdate()方法。但是在源代码中,这个方法有注释@internal。因此,我不确定是否应该从非库代码使用此方法。我应该吗?似乎您必须在条令服务上而不是实体管理器上使用executeUpdate()方法
$this->container->get('doctrine.orm.entity_manager')->getConnection()->executeUpdate($query)在我
我正在使用Silex和条令创建一个API,它利用条令关联。我正在使用JMSSerializer序列化实体
所有实体都作为漂亮的JSON对象返回,但有一个实体除外,它具有多通关联
我发现当序列化此特定实体时,它实际上是序列化的代理类,包括以下属性:
"__initializer__": null,
"__cloner__": null,
"__isInitialized__": true,
为什么在这种情况下我得到的是代理类而不是实体?在序列化之前,我尝试在应用程序中的对象上调用方法,试图加载完
我创建实体管理器的实例
$this->em = Connection::MainMySql()->GetEntityManager();
在一些查询之后,我尝试从存储库类获取对象
$usersArray = $this->em->createQueryBuilder()
->select("us")
->from('Model\Repo\mytables\U
我想搜索未分配房间的人。我提出了以下问题:
public function findByWithoutRoom()
{
$qb = $this->getEntityManager()->createQueryBuilder();
$qb2 = $this->getEntityManager()->createQueryBuilder();
$qb
->select('p')
->from('MyPeop
我有一个属于一个或多个类别的实体,每个实体Boom都有许多属性或子元素Boomelement,在本例中,它们应该是7
当我尝试根据顺序保留实体时,我会得到不同的结果:
如果我创建一个空实体,则绑定请求,然后持久化:
生成实体
正确分配类别
子元素被持久化,但它们不会与实体相关联,带有外键的列显示null
如果我创建了一个没有空实体的表单,请绑定请求并持久化:
生成实体
该类别未获得分配
子元素被持久化并与实体关联
如果我创建了一个具有空实体的表单,并分配了一个空子元素,则绑定请求,然后保持:
生
以下是我所做的:\
在composer.json中添加了以下依赖项
"doctrine/doctrine-fixtures-bundle": "dev-master",
"doctrine/data-fixtures": "dev-master"
在终端上运行以下命令:
php composer.phar更新
在appKernel.php中添加了以下行
新条令\Bundle\FixturesBundle\DoctrineFixturesBundle()
当我在提示符下运行任何symfony命
我有两个条令表,它们与多个关系相关联
表:条目
表:标签
我希望能够找到有多个或一个标签匹配我输入的每个标签的条目
例如:En条目“foo”的标签为“1”和“2”。如果我试图通过标记“1”查找每个条目,我会找到此条目,如果我再次搜索“1”和“2”,我会再次找到它,但如果我添加了标记“3”的搜索,则该值不匹配
到目前为止,我已经找到了一些简单的方法来用OR实现这样的事情,但它并没有给我想要的结果,我真的不知道如何用Doctrine 2进行这种搜索
通常,我会使用关系表来实现这一点,但我不知道在原则
我在日志中发现奇怪的查询,并检测到源:
echo app()->getCountSql(); // 2
$table->findAll();
echo app()->getCountSql(); // 21
$table是页\路由类的自动生成存储库
加载路由后,在单独的查询中为每个路由加载页面
我检查了proxy Generation,手动创建了proxy\uuuucg\uuuuu\page\page和proxy\uuuuucg\uuuuu\page\route对象,效果很好
以下是我尝试过的:
$entityManager=$this->getServiceLocator()->get('doctrine.entityManager.orm_default');
$rsm=new\Doctrine\ORM\Query\ResultSetMapping;
$rsm->addEntityResult('SchoolAdmin\Entity\Maptechclass','Mt');
$rsm->addFieldResult('Mt','map_tech_class_id'
我有一个有两个日期的表单,我使用bootstrap3日期选择器。日期不是强制性的。当我提交表单并且一个或两个日期都没有填写时,发布的实体包含实际的日期时间,而不是空的。当我检查$u POST时,日期为空。
我使用doctrine2和ZF2。也许你需要更多的信息。。。提前感谢您的帮助。您应该使用默认值NULL定义日期字段,然后添加NULL=true选项
/**
* @ORM\Column(type="date", nullable=true)
*/
private $someDateField
我正在使用符号和学说
这可能是一个简单的问题,但我似乎找不到答案
如何在querybuilder中引用多对多关联的联接表
我有两个实体:具有多对多双向关系的文章和标签
这将创建额外的联接表:
article <-> article_tag <-> tag
我可以通过从标记实体中选择来引用标记表:
$this->_em->createQueryBuilder();
->select('t')
->from('Acme\DemoBun
我有下面的doctrine dql查询,我看不出它与手动查询有多大不同,但我得到以下错误:
致命错误:未捕获异常“条令\ORM\Query\QueryException”
使用消息“从\SessionStorage s中选择s,其中id=?1和”
expireAt>NOW()
我尝试过将createQuery与setparameter分开,但在createQuery失败了,但它没有给出任何错误的线索。根据文档,它应该可以工作,它的基本代码非常简单,如果我提出一个正常的pdo请求,它就可以工作
我
我有两个模块。1) 用户模块和2)RbacUser模块。RbacUser模块依赖于用户模块。我从RbacUser模块中的用户模块扩展了我的“用户实体”,并向用户实体添加了一些新属性,如角色等
我要做的是,当我使用RbacUser模块时,将RbacUser模块用户实体设为默认值。所以模式工具知道应该使用哪个实体来创建表
简言之:
如果仅使用用户模块,则将其用户实体设置为默认值
或
如果使用了RbacUser模块,则将其用户实体设置为默认,并忽略用户实体
我找到了解决方案
这是我的两个模块的配置
在我们的zf2项目中,我们大量使用了树,并使用了一些大树数据结构。我们知道嵌套集中的插入和更新是昂贵的。我们还知道树插件使用“根”列来确定应该更新哪个树
昨天我又看了一遍,发现:
“支持嵌套集中的多个根”
它是什么意思?它是如何工作的?我找不到此功能的任何文档
我们希望能够定义一棵大树下一个分支的第二个根项目,这样插入和更新到这个下一个分支不会影响整个树,而只会影响这个分支。有可能吗?有可能,树根分支将由级别0节点分隔,请参阅所有映射类型都有示例来映射treeRoot列。列的类型必须与ID的类型
我以前也遇到过这个问题,但不记得是怎么解决的,我想这是漫长的一天
我有一个字段,在我的条令定义中可以为空,但按照Sonata Admin条目表的要求呈现。我不想关闭HTML验证,因此我正在寻找一种解决方案,让sonata admin正确呈现字段
我试着用谷歌搜索,但我并不幸运。欢迎提供任何帮助您是否尝试过在entities admin类的configureFormFields函数中将所需选项设置为false
这是我的一个类的示例,我使用它显式地将其设置为true:
您可以尝试在类中设置选项,如下
我的symfony项目有一个类Person在可重用包中。在另一个包中,我有一个class财务记录
因为我想将捆绑包解耦,所以我决定向FinancialRecord添加一个属性personId
现在正在加载财务记录列表我还需要访问个人,因此在我的控制器中:
$financialRecords = $em->getRepository('MyFinancialBundle:FinancialRecord')->findByYear($year);
foreach ($financialR
目前,在使用两个实体并将它们映射到自己的关联实体时,Doctrine2存在问题。我在这里完全复制了这篇博客文章中的实体类:
在我的示例中,我使用了一个PHPUnit测试,在该测试中,我按照以下方式播放场景。但与博客帖子不同的是,我的关联实体没有被删除!phpunit测试用例失败了,我希望公司只剩下一份工作,而剩下的两个人一个也没有
这发生在我自己的项目中,我试图将示例正确地映射到我的案例中,但示例也不起作用。是否对禁止删除协会实体的原则进行了任何更改
$entityManager = $
我运行此脚本时出现以下错误:
抽象工厂无法创建的实例
条令.entitymanager.ormdefaultalias:
doctrine.entitymanager.orm_默认值
//获取实体管理器
$entityManager = $this->getServiceLocator()
->get('doctrine.entitymanager.orm_default');
如何解决该问题这是一个通过工厂将实体管理器注入服务的示例。假设您的服务中定义了Entit
经过一些研究,我仍然在为我的小问题寻找解决方案!
我想为我的用户提供一种金字塔结构,但有一个“兄弟用户”的概念,让我解释一下
我有这样的用户:
该树仅表示谁创建了谁,事实上,两个建筑管理员管理同一个建筑,并且必须查看另一个建筑创建了什么
图例:
b=>大楼,s=>服务,r=>房间,a=>管理员(带他的id)
b1-a1
b1-s1-a2
b1-s1-r1-a2
b1-s1-r2-a3
b1-s1-a4
b1-s1-r1-a5
b1-s1-r2-a6
b1-s2-a7
b1-a8
我想编辑由Symfony 4中的MakerBundle提供的make:entity命令
这里有一个解释:默认情况下,该命令在每个实体中添加字段Id。我想自动添加其他字段。这就是我想要编辑make:entity命令的原因
我还可以创建一个新包,添加一个新命令,如my:make:entity。但如果我添加了一个新命令,我不希望make:entity仍然可用。我有一个开源项目,我不想让somemone使用旧的make:entity命令。那么,如果我不能编辑make:entity命令,我可以停用它吗
提
过去,我使用quoteStr在使用exec_INSERTquery将输入数据插入数据库之前对其进行清理,例如:
'info'=>$GLOBALS['TYPO3'u DB']->quoteStr$info'tx\u mytablename'
什么是正确的方法来清理输入数据字符串,以便与TYPO3 8及以上版本中的条令一起使用?根据您的使用情况,条令提供的以下功能可以使用!用于清理SQL查询中的数据:
createNamedParameter
引用标识符
引用标识符
有关更多详细信息,请参阅Quer
我有一个将数据插入数据库的功能。当我运行浏览器时,它工作正常。但当我从命令运行时,它会给我以下错误:
at /www/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:39
Exception trace:
is not supported by platform.
Operation 'Doctrine\DBAL\P
我正试图用条令2构建一个查询
$qb = $em->createQueryBuilder()
->select('*')
->from('Countries','c')
//getDQL
->getQuery();
echo "<pre>";
echo ($qb->execute());
echo "<
我有一个模型:Unit和StringValue(继承自AbstractValue)。单元只知道抽象值(OneToMany)。我创建一个StringValue并将其添加到Unit。如何访问dql或queryBuilder中的StringValue.value属性
Models:
/**
* @Entity
* @Table(name="Unit")
*/
class Unit {
...
/**
* Values
* @var Doctrine\Common\
我为条令创建了yaml配置。当我尝试orm:generate entities时,它会在camel case中使用getter和setter创建php文件。因此,is_public字段转换为setIsPublic和getIsPublic方法。太多了。如何获取set\u is\u public和get\u is\u public?我可以手动编辑生成的php文件,但我不知道当我更改模式时会发生什么 鼓励Symfony用户使用camelCase:
命名约定
变量使用CAMELLCASE,而不是下划线,
我有一些需要更新DateTime属性的操作。我写
public function foo()
{
$this->completionTime = $this->completionTime->add(new \DateInterval('P1W'));
}
对象中的属性completionTime已成功更新,但未看到更改,也未保存此属性
当我更新某些其他属性时,请保存此属性,但completionTime不会再次保存。
我还写$this->completationt
假设我有两个实体,用户和地址。每个用户都必须有一个地址,以便表之间存在一对一的关系
现在我想生成一个用户,它应该自动创建一个没有数据的地址行,并且只标记它们之间的关系
这在实体或EntityRepository类中是可能的吗?还是有一个命令可以自动执行此操作
感谢在存储库中编写函数:
class User_Repository {
public function createEmptyUserWithAddress() {
$user = new User();
我有一个应用程序需要导入.sql文件。我可以使用mysql-u my_user-pMyPassword db_name
我尝试使用普通的sql查询
SELECT activity_shares.id FROM `activity_shares`
INNER JOIN (SELECT `activity_id` FROM `activity_shares`
GROUP BY `activity_id`
HAVING COUNT(`activity_id`) > 1 ) dup ON activity_shares.activity_id = dup.activity_id
这给了我记录id说10和11
我有3个带列的表
A:
id
B:
id
a_id
C:
id
b.id
使用本机查询:
SELECT a.id, b.id, c.id
FROM A as a
LEFT JOIN B as b
INNER JOIN C as c ON b.id = c.b_id
ON a.id = b.a_id
我试过了
SELECT a.id, b.id, c.id
FROM App\HomeBundle\Entity\A as a
我正在用Zend 2和Doctrine 2构建一个产品,它要求我为每个用户提供一个单独的表,以包含他们独有的数据。我已经创建了一个实体来定义该表的外观,但是如何更改表的名称,以便在运行时将数据持久化到或实际上从中检索数据
或者,让每个用户都有自己的数据库,而只是更改连接到哪个数据库,这样会更好吗?首先,我会质疑设计选择。如果在运行后创建新用户,会发生什么情况。必须先创建表吗?此外,您正在存储什么样的数据,对我来说,这听起来像是一种非常常见的多客户端功能。比如:
tbl_clients
-
我正在尝试创建一个特定的散列。遵循以下路径:
在$hash上创建具有唯一键的哈希对象
构造函数填充种子以生成实际的$hash
试着保存它
如果由于错误23000(重复密钥)而导致保存失败,请创建另一个哈希并重复,直到生成一个尚不存在的唯一哈希
现在我的问题来了。使用Doctrine2,当查询由于SQL错误而失败时,它将关闭EntityManager。在我的情况下,这没有问题,因为我将重试
一种解决方案是在哈希已经存在的情况下搜索数据库。由于非常非常低的冲突量(md5)以及需要尽可能快地完成任务(
我在DBAL的手册或这里的搜索中没有找到任何与此相关的内容
所以基本上我的问题是,有没有一种方法可以使用DBAL获取数据库服务器信息
PHP有“mysqli_get_server_info()”和“PDO::getAttribute(PDO::ATTR_server_VERSION)”,所以我想知道DBAL是否也支持类似的内容。一个老问题,但我也需要一个答案
因此:
考虑一下文档:里面有各种各样的好东西。谢谢,我已经看过了,但是找不到任何关于服务器的信息。
$this->getDoctri
我有一个基本上是:
/**
* @var string
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\ManyToOne(targetEntity="HebergementType", cascade={"persist"}
我有以下实体
专业的
时隙实体
我想删除给定专业人员的所有时间段,我尝试了
$professional->getTimeslots()->clear();
$em->persist($professional);
$em->flush();
这不会删除数据,如何删除给定专业人员的所有时隙?您可以使用->clear()来实现这一点,但您必须向专业人员实体添加一些代码
@ORM\OneToMany(targetEntity="UserBundle\Entity\Timesl
如何配置ZF3项目,使其能够使用Orm工具中的“生成实体”命令
我为模型使用Application\Entity命名空间,该工具在Application\Entity目录中生成实体,而不是在Application\src\Entity目录中生成实体
如何调整?您实际上无法调整,条令生成器仅为psr-0,不会更新(在未来版本中可能会被删除)。我这里没有资料来源,只是我想读一些关于github项目的资料
不过,您可以创建一个psr-0加载的模块,并更改配置以仅为您的实体使用psr-0,但我强烈建议您
我有一个安装/配置了条令的Zend Framework 2项目。我直接在实体上使用Zend表单注释来生成表单以显示/编辑实体数据。我遇到了一个问题:
具有多个关系中配置的子实体(区域)集合的实体(供应商)。理论关系运行良好,但是我添加了zend表单注释
/*
* ...doctrine annotations...
* @Annotation\Type("Zend\Form\Element\Collection")
* @Annotation\Options({"label":"Terri
我开始使用教义,并立即遇到麻烦。我的实体定义如下:
namespace AdminModule;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="admin_user")
*/
class User extends \Nette\Object
{
/**
* @ORM\Id
* @ORM\Column(type="string", name="guid")
在使用条令和查询生成器时,一个重要的任务是为结果集添加水分。我的问题是如何返回数组及其子集:
这是针对单个结果集的,答案非常简单:
$qb = $this->stoneRepository->createQueryBuilder('S');
$query = $qb->addSelect('A','P','I','C')
->leftJoin('S.attribute', 'A')
->lef
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 34 页