Tag: symfony

Symfony2扩展DefaultAuthenticationSuccessHandler

我想在authentication成功之后改变默认的authentication过程。 我做了一个服务,authentication成功后,redirect之前调用。 namespace Pkr\BlogUserBundle\Handler; use Doctrine\ORM\EntityManager; use Pkr\BlogUserBundle\Service\Encoder\WpTransitionalEncoder; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Log\LoggerInterface; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface; use Symfony\Component\Security\Http\Authentication\Response; class AuthenticationSuccessHandler implements AuthenticationSuccessHandlerInterface { protected $entityManager = null; protected $logger = null; protected $encoder = null; public function __construct(EntityManager $entityManager, LoggerInterface $logger, WpTransitionalEncoder $encoder) { $this->entityManager = $entityManager; $this->logger = $logger; $this->encoder = $encoder; } /** […]

Symfony2-Doctrine:ManyToMany关系不保存到数据库

我有两个名为Category和Item的PHP模型类。 一个类别可能有许多项目,一个项目可能属于许多类别。 我为这两个类创build了一个ManyToMany关系: class Category { /** * @ORM\ManyToMany(targetEntity="Item", mappedBy="categories", cascade={"persist"}) */ private $items; /** * Add items * * @param Ako\StoreBundle\Entity\Item $items */ public function addItems(\Ako\StoreBundle\Entity\Item $items) { $this->items[] = $items; } /** * Get items * * @return Doctrine\Common\Collections\Collection */ public function getItems() { return $this->items; } } 和: class Item { /** […]

Symfony2:将请求绑定到表单后,如何获取表单validation错误

这是我的saveAction代码(表单将数据传递给) public function saveAction() { $user = OBUser(); $form = $this->createForm(new OBUserType(), $user); if ($this->request->getMethod() == 'POST') { $form->bindRequest($this->request); if ($form->isValid()) return $this->redirect($this->generateUrl('success_page')); else return $this->redirect($this->generateUrl('registration_form')); } else return new Response(); } 我的问题是:如果$form->isValid()返回false我该如何得到错误?

如何在Symfony 2中获得当前路线?

如何获得Symfony 2中的当前路线? 例如, routing.yml : somePage: pattern: /page/ defaults: { _controller: "AcmeBundle:Test:index" } 我怎样才能得到这个somePage值?

Symfony2的概念问题:一般捆绑与特定的问题

编辑: Symfony最佳实践回答了我的大部分问题。 我有几个关于我的Symfony2应用程序的问题。 它将有一个前端和一个后端,他们将使用一些常见的代码(如date显示器,分页器,一些常用的模板等)。 所以,我创build了一个FrontendBundle和一个BackendBundle,每个包含各自的布局。 第一个问题:为前端和后端创build捆绑包是一种很好的做法,即“通用”捆绑包,甚至没有控制器? 第二个问题:我在一本食谱上读过,我不应该把我的布局放入捆绑包中,而是放在app / Resources / views /目录中。 我已经有一个base.html.twig文件,我不知道是否应该把我的布局也在那里,就像一个frontend_layout.html.twig文件? 我创build了一个名为RootBundle的包,它将包含我的应用程序在前端和后端中所需的所有内容。 这是一个很好的做法吗? 或者我应该为build议的每个function创build一个专用的包,如PaginatorBundle,DateDisplayerBundle等? 这听起来很奇怪,我有一个“杂项”包含一切,我不知道在哪里放。 你如何做到这一点?

Symfony 2中CSS文件的资源path

问题 我有一个CSS文件,其中有一些path(图像,字体等.. url(..) )。 我的path结构是这样的: … +-src/ | +-MyCompany/ | +-MyBundle/ | +-Resources/ | +-assets/ | +-css/ | +-stylesheets… +-web/ | +-images/ | +-images… … 我想在样式表中引用我的图像。 第一个scheme 我将CSS文件中的所有path改为绝对path。 这不是解决scheme,因为应用程序应该(也必须)在一个子目录中工作。 第二个scheme 在filter="cssrewrite"使用Assetic。 所以我改变了我的CSS文件中的所有path url("../../../../../../webhttp://img.dovov.commyimage.png") 来表示从我的资源目录到/web/images目录的实际path。 这不起作用,因为cssrewrite产生以下代码: url("../../Resources/assets/") 这显然是错误的道路。 assetic:dump这个path创build后,这仍然是错误的: url("../../../webhttp://img.dovov.commyimage.png") Assetic的嫩枝代码: {% stylesheets '@MyCompanyMyBundle/Resources/assets/css/*.css' filter="cssrewrite" %} <link rel="stylesheet" href="{{ asset_url }}" /> {% endstylesheets %} 当前(第三个)解决scheme […]

symfony2重写规则.htaccess app.php

我上传了我的symfony2项目到服务器林。 主页面加载,但所有的链接被打破。 我尝试添加app.php的url。 它确实有效,但是: 我有像这样的路线: www.something.com/app.php/something 我希望他们成为: www.something.com/something。 我一直在阅读,我应该在.htaccess上写一些重写规则。 我发现了这些规则,但似乎并不奏效: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L] </IfModule>

创build包之后出现Symfony3 ClassNotFoundException

我想在Symfony中开始一个新的3.3项目,像往常一样开始: 1.)创build新项目: symfony new ArtProject 2.)创build一个新的Bundle: php app/console generate:bundle (Paul / ArtBundle,yml,src /) 然后我运行本地服务器,当我打开127.0.0.1:8000时,我得到这个美丽的信息: (1/1)ClassNotFoundException 试图从命名空间“Paul \ ArtBundle”加载类“PaulArtBundle”。 你忘了另一个命名空间的“使用”声明? 在AppKernel.php(第19行) 这是奇怪的,我还没有弄清楚为什么会发生这样的事情。 在创buildBundle之前,没有错误; 我看到了symfony的典型首页。 public function registerBundles() { $bundles = [ new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), …… new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), new AppBundle\AppBundle(), new Paul\ArtBundle\PaulArtBundle(), ]; } <?php namespace Paul\ArtBundle; use Symfony\Component\HttpKernel\Bundle\Bundle; class PaulArtBundle extends Bundle { } 任何想法发生了什么? 我没有改变什么,我只是跑这些命令。

Symfony 2.x中的所有东西都应该是一个捆绑吗?

我意识到这样的问题,人们倾向于讨论Symfony 2的一般概念。 问题是,在一个特定的应用程序中,比如像一个类似twitter的应用程序,是否应该像真正的官方文档一样,真正在一个通用的bundle中? 我问这个问题的原因是,当我们开发应用程序时,通常我们不想将代码高度耦合到一些全栈胶水框架。 如果我开发一个基于Symfony 2的应用程序,并且在某种程度上,我决定Symfony 2并不是真正保持开发进展的最佳select,那对我来说会是一个问题吗? 所以一般的问题是:为什么一切都成为一件好事? 编辑#1 我问这个问题差不多一年了,我写了一篇文章来分享我对这个话题的认识。

自动注册后用户authentication

我们正在从Symfony 2开始构build一个商业应用程序,并且遇到了一些与用户注册stream程有关的问题:在用户创build一个帐户之后,他们应该自动使用这些凭据login,而不是立即被迫再次提供他们的证件。 任何人有任何这方面的经验,或能够指出我在正确的方向吗?