草庐IT

symfony-components

全部标签

php - 如何正确获取 Symfony 3 中的 EntityManager?

我正在使用当前版本的Symfony(3.2.3)和DoctrineORM(2.5.6),我仍在努力思考如何处理getEntityManager()的弃用和相关方法正确。例如,当前的documentation声明这是创建查询构建器实例的方法:$repository=$this->getDoctrine()->getRepository('AppBundle:Product');$queryBuilder=$repository->createQueryBuilder('p')但在我看来(我的IDE似乎同意),getRepository()是类型提示以返回ObjectRepository的

php - 令人难以置信的慢缓存 :clear of symfony in dev environment

最近几个月我遇到了一个问题,在我的本地环境中,命令cache:clear非常慢。很多时候需要一分钟以上。我在XAMPP和WAMP上都试过了,但没有用。我试图通过删除不同的服务和bundle来解决,但情况仍然一样。最后我发现问题与我的Resources/Views文件夹中的Twig文件数量成正比。我什至用标准命令创建了一个新的symfony项目composercreate-projectsymfony/framework-standard-editiontest-performance-project"2.7.*"并创建了一个简单的标准Controller和Twig文件来验证我的假设。我

php - Symfony 3/Doctrine - 获取实体更改集中关联的更改

所以我已经知道我可以在preUpdate生命周期事件中获取对特定实体的更改:/***Capturespre-updateevents.*@paramPreUpdateEventArgs$args*/publicfunctionpreUpdate(PreUpdateEventArgs$args){$entity=$args->getEntity();if($entityinstanceofParentEntity){$changes=$args->getEntityChangeSet();}}但是,有没有办法同时获取任何关联实体的更改?例如,假设ParentEntity具有如下关系设置:

php - 如何在 PHP Symfony 4 中获取 POST 全局变量?

我在Symfony4中获取POST全局变量的结果时遇到了一个非常奇怪的问题。我这样试过:$date=$request->request->get('date');这就是我在日历输入的日期更改时实际发送AJAX请求的方式:onSelect:function(date,instance){$.ajax({url:'home',type:'POST',data:{'date':date},dataType:'html',success:function(code_html,statut){console.log(statut);},error:function(resultat,statut

php - Symfony - 创建插件需要什么?

我一直在浏览Symfony文档以了解如何创建插件。然而,这两个教程似乎提供了很多额外的信息(例如模型等)。我想知道的是,要让Controller和模板从插件目录工作,绝对最低要求是什么?例如,只有一个索引操作和相应的“HelloWorld”模板。此外,此路由是自动的还是我必须手动更改某些内容?感谢任何建议。谢谢。 最佳答案 要完成您的要求,您需要具备以下条件:MyPlugin/modules/my_module/actions/actions.class.phptemplates/indexSuccess.php然后您需要在您的Pr

php - 在 Symfony2 中使用 buildForm->add() 函数时,可接受的选项有哪些?

我已经查看了文档,除非我错过了它,否则我无法找到任何解释Symfony2中buildForm->add()函数的官方$options的内容。publicfunctionbuildForm(FormBuilder$builder,array$options){$builder->add('fieldname1');$builder->add('fieldname2',newformObjectType(),$arrayOptions);}采用上面的代码,哪些选项将作为第二个字段的数组传入。谢谢 最佳答案 这些选项被传递给字段类型,在您

php - Symfony2 中依赖注入(inject)的最佳实践

在持久化一个实体之前,我需要在我的数据库的另一个表中复制和格式化一些数据。我希望此任务作为服务执行。所以我在config.yml中描述服务services:my_service:class:Acme\Bundle\AcmeBundle\DependencyInjections\MyServicearguments:entityManager:"@doctrine.orm.entity_manager"我想知道调用此服务的最佳方式。我能弄清楚的唯一方法是从Controller:$entity=newEntity($this->get('my_service'));这是最好的方法吗?

php - 如何在 Symfony 2 的每个 URL 中设置 {locale}?

你是怎么做到的?但如果可能,请避免使用特定语言必须为每个url编写它很烦人..例如:我希望我的站点对每个url响应/和/fr-FR/。前者为英语,后者为法语。 最佳答案 你应该看看JMSI18nRoutingBundle,它为路由添加了国际化支持,而无需复制任何路由定义。这个包配置了三个用于翻译路由的通用场景。您的示例非常适合Scenario2这是“为除默认语言环境之外的所有语言环境添加前缀” 关于php-如何在Symfony2的每个URL中设置{locale}?,我们在StackOve

php - 在功能测试期间,如何使用 Symfony2 的 session 服务持久保存数据?

我正在为使用Symfony2的session服务获取数据的操作编写功能测试。在我的测试类的setUp方法中,我调用了$this->get('session')->set('foo','bar');。如果我在setUp或实际中输出所有session数据(使用print_r($this->get('session')->all());)测试方法,我返回foo=>bar。但是,如果我尝试从被测试的操作中输出session数据,我会得到一个空数组。有谁知道为什么会这样,我该如何预防?我应该注意,如果我从setUp()中调用$_SESSION['foo']='bar',数据将被保留,我可以从操作

php - Symfony2 : The option "widget" does not exist

我正在尝试使用symfony2构建表单,但每当我添加小部件选项以指定表单字段类型时,我总是收到错误消息“选项“小部件”不存在”。我正在按照那里的文档给出的示例http://symfony.com/doc/current/book/forms.html我的代码不起作用。classUserTypeextendsAbstractType{publicfunctionbuildForm(FormBuilder$builder,array$options){$builder->add('Name')->add('Login')->add('Password')//,'text',array('w