Tag: symfony

Symfony2和date_default_timezone_get() – 依靠系统的时区设置是不安全的

我有一个Symfony2项目。 我今天更新了我的PHP到5.5.7,从那以后,我得到了 Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for […]

如何在Twig模板中呈现DateTime对象

我的一个实体中的一个字段是“date时间”variables。 如何将此字段转换为string以在浏览器中呈现? 这是一个代码片段: {% for game in games %} … <td> {{game.gameTeamIdOne.teamName}} </td> <td> {{game.gameTeamIdTwo.teamName}} </td> <td> {{game.gameDate}}</td> </tr> {% endfor %} 这是我的实体类中的variables: /** * @var date $gameDate * * @ORM\Column(name="GAME_DATE", type="datetime", nullable=true) */ private $gameDate; 这里是我得到的错误消息: 在呈现模板期间抛出exception(“可捕获的致命错误:类DateTime的对象无法转换为… \ app \ cache \ dev \ twig \ 9b \ ad \ 58fd3bb1517632badf1fdc7fa4a8.php第33行中的string” )在第10行的“BeerBundle:Games:gameTable.html.twig”中。

如何在Symfony 2中的login_check之后禁用redirect

我需要在login检查后禁用redirect,因为我只需要获取login成功与否。 提交/ login_check url后给我正确的数据,但保持redirect到/login(失败)。 /login后空白。 我正在尝试使用extjs 4设置login表单,所以我需要通过ajax post请求进行validation。 login_check应该进行身份validation,创build用户会话并返回它是成功还是失败,但是不能在任何地方转发。 我的login.html.twig看起来像: {% if is_granted("IS_AUTHENTICATED_REMEMBERED") %} { success:true } {% else %} { success: false } {% endif %} 和security.yml中: firewalls: main: form_login: provider: fos_userbundle failure_path: null failure_forward: false

Symfony2 AJAXlogin

我有一个例子,我试图创build一个使用Symfony2和FOSUserBundle的AJAXlogin。 我在我的security.yml文件中设置自己的failure_handler和failure_handler在form_login下。 这是class级: class AjaxAuthenticationListener implements AuthenticationSuccessHandlerInterface, AuthenticationFailureHandlerInterface { /** * This is called when an interactive authentication attempt succeeds. This * is called by authentication listeners inheriting from * AbstractAuthenticationListener. * * @see \Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener * @param Request $request * @param TokenInterface $token * @return Response the response to return */ public function onAuthenticationSuccess(Request $request, […]

方法名称必须以findBy或findOneBy开头。 未定义的方法Symfony?

我正在通过Symfony2的part4 ,并更新控制器和帮助类代码,我得到以下错误信息 Undefined method 'getLatestBlogs'. The method name must start with either findBy or findOneBy! 之前,我已经把一些代码在控制器,我转移到我的助手类的教程教导,导致上述错误信息。 <?php // src/Blogger/BlogBundle/Repository/BlogRepository.php namespace Blogger\BlogBundle\Repository; use Doctrine\ORM\EntityRepository; /** * BlogRepository * This class was generated by the Doctrine ORM. Add your own custom * repository methods below. */ class BlogRepository extends EntityRepository { public function getLatestBlogs($limit = null) { […]

Symfony 2:从存储库创build一个服务

我正在学习Symfony,我一直在尝试使用存储库来创build一个服务。 我已经从generate:entity创build了我的仓库和实体,所以他们应该没问题。 到目前为止,我在我的services.yml中得到的是: parameters: mytest.entity: TestTestBundle:Brand mytest.class: Test\TestBundle\Entity\Brand default_repository.class: Doctrine\ORM\EntityRepository services: myservice: class: %default_repository.class% factory-service: doctrine.orm.default_entity_manager factory-method: getRepository arguments: – %mytest.entity% 但是当我尝试调用该服务时,出现此错误: Catchable Fatal Error: Argument 2 passed to Doctrine\ORM\EntityRepository::__construct() must be an instance of Doctrine\ORM\Mapping\ClassMetadata, none given, called in 然后我试图用一个实体来创build这个服务。 我的services.yml将如下所示: services: myservice: class: %mytest.class% factory-service: doctrine.orm.default_entity_manager factory-method: getRepository arguments: – %mytest.entity% 但为此,我得到: Error: […]

如何在一段时间不活动后自动closures用户?

在网上search了很多东西之后,我发现有一个简单的方法可以在非活动时间之后自动注销通过Symfony Securitylogin的用户。 例如,我希望用户在闲置30分钟后注销。 我使用这样的自定义用户提供程序。 但在用户login系统后,会话永不过期。 即使closures浏览器并在几天之后再次打开,会话仍然有效。 无论如何,以自动方式甚至手动方式注销这个用户? 我怎样才能做到这一点?

将数据传递给Symfony 2.8 / 3.0中的buildForm()

我的应用程序当前使用构造函数将数据传递给我的表单types,如本答案中的build议。 但是, Symfony 2.8升级指南build议不build议将types实例传递给createForm函数: 将types实例传递给Form :: add(),FormBuilder :: add()和FormFactory :: create *()方法已被弃用,并且在Symfony 3.0中不再被支持。 改为传递types的完全限定类名称。 Before: $form = $this->createForm(new MyType()); After: $form = $this->createForm(MyType::class); 鉴于我无法通过完全合格的类名传递数据,是否有其他select?

如何在Symfony 2.0 AJAX应用程序中将Doctrine实体编码为JSON?

我正在开发游戏应用程序,并使用Symfony 2.0。 我有很多AJAX请求到后端。 而更多的反应是将实体转换为JSON。 例如: class DefaultController extends Controller { public function launchAction() { $user = $this->getDoctrine() ->getRepository('UserBundle:User') ->find($id); // encode user to json format $userDataAsJson = $this->encodeUserDataToJson($user); return array( 'userDataAsJson' => $userDataAsJson ); } private function encodeUserDataToJson(User $user) { $userData = array( 'id' => $user->getId(), 'profile' => array( 'nickname' => $user->getProfile()->getNickname() ) ); $jsonEncoder […]

在Doctrine QueryBuilder中计算行数

我正在使用Doctrine的QueryBuilder来build立一个查询,我想从查询中得到结果的总数。 $repository = $em->getRepository('FooBundle:Foo'); $qb = $repository->createQueryBuilder('n') ->where('n.bar = :bar') ->setParameter('bar', $bar); $query = $qb->getQuery(); //this doesn't work $totalrows = $query->getResult()->count(); 我只是想运行一个计数在这个查询来获得总行,但不返回实际的结果。 (在这个计数查询之后,我将使用maxResults进一步修改查询分页。)