问题标签 [symfony-2.6]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
127 浏览

php - Symfony2 routing.yml 在同一目录中设置 routing_frontend.yml 和 routing_backend.yml

我正在尝试学习 symfony2,但路由让我感到困惑

我已经成功地生成了捆绑包和带有动作的控制器

我想在同一个地方管理我的所有路由,而不是将每个路由模式放在每个 *bundle/resource/config/routing.yml

所以我像这样设置我的app/config/routing.yml

路由.yml

然后当我浏览 localhost/ 时就可以了,但是在 localhost/admin 出现错误

但是当我像这样重新排序routing.yml配置时

路由.yml

然后当我浏览 localhost/admin 但在 localhost/ 出错时就可以了

路由前端.yml

路由后端.yml

0 投票
2 回答
183 浏览

symfony - Symfony-2,在 buildForm() 函数中插入用户

我有两个实体(用户和项目),带有生成的 CRUD 选项。实体之间的关系是 OneToMany 双向的(用户 1 - * 项目)。在 project/new 中,CRUD 为用户生成了下拉列表,但我想自动设置登录用户,而不是从下拉列表中选择它。

这是 ProjectType/buildForm() 函数:

我可以在 buildForm() (来自会话?数据库?)或其他地方将登录用户设置为项目创建者吗?谢谢。

0 投票
1 回答
580 浏览

php - 新主题字段渲染问题

安装新的 Symfony2.6 以及集成的 Bootstrao 表单主题后。我现在在渲染 Money 字段时遇到了问题。

一张图片可能比试图描述它更容易。

金钱领域的问题

用于从 Bootstrap_3_layout.html.twig 中呈现字段的代码如下所示:

渲染的 Html 看起来像这样:

在升级到 2.6 之前,这些字段工作得非常好。

我检查了在 php.ini 和 config.yml 中启用了 Intl 扩展,我有以下设置:

0 投票
0 回答
167 浏览

symfony - Symfony2 表单中的自定义实体数据处理

我目前正在使用Symfony 2.6在网站上实现通知首选项。

持有通知偏好的实体如下:

目前大约有 15 个这样的不同键,但我现在还想允许为每种类型配置EmailSMSDashboard通知。我没有为每种类型创建两个额外的列,而是考虑将每个$*Enabled列类型从更改boolean为 Doctrine array,并将数据作为关联数组 ( ['dashboard' => true, 'email' => false, 'sms' => true]) 保存在每个表列中。

我的问题是关于然后将此array列连接到 Symonfy表单类型。据我了解,我可以为该字段创建一个自定义类型,并使用它而不是'checkbox'我当前使用的类型。像这样的东西:

...和主要形式类型...

但是后来我不明白如何用实体中的数据填充'checkbox'类型的值。NotificationSettingTypearray

编辑 1

进一步澄清:

我正在寻找如何将数据从/绑定到UserNotification特定的列。

例如,说:

然后在NotificationSettingType本专栏中:

  • 'dashboard'会被检查
  • 'email'将不被选中
  • 'sms'会被检查

然后,在提交之后,例如,如果我取消选中SMS,则新数组将在列变量中为:

我知道如何传递选项,但我不知道如何转换这些数据以使其与 Symfony2 表单类型兼容。

0 投票
1 回答
265 浏览

json - Symfony 2.6 - Flot 图表无法从 JSON 正确填充

我正在尝试使用根据学说查询结果创建的 JSON 填充 Flot Pie 图表,但未成功。以下是详细信息...

控制器:

JSON结果:

Javascript:

当前结果(未定义的标签和应有的标签): http: //oi61.tinypic.com/28srjut.jpg

期望的结果: http: //oi59.tinypic.com/sncwtx.jpg

0 投票
1 回答
624 浏览

php - FOSUserBundle 添加组未正确将行插入到 mysql db

我尝试启用 fosuserbundle 的组功能,遵循 fosuserbundle git 上的文档

注册控制器:

捆绑\实体\用户.php

bundle\Entity\Group.php

我猜需要 fos_user_user_group 表来存储用户组记录,但不存在,我四处搜索并没有创建它的命令,但我找到了结构,所以我在 phpmyadmin 手动创建它

最后我认为一切都准备好了,所以我尝试在控制器上转储

最后,我的用户在组管理员中???

但是当我尝试以下

我的组是空的,所以我使用 phpmyadmin 检查 db,查看 fos_user_user_group,有 0 行,我想念什么吗?添加组永远不会插入数据库。

i google around and found that can assign group to user when user register successfully using event listener, so i give it a try, but same there is no record inserted

bundle\EventListener\UserCreationListener.php

0 投票
1 回答
4009 浏览

php - 使用 composer 后 Symfony 2.6 错误:“必须安装供应商库”

使用 composer 创建或更新 Symfony 2.6.1 项目后,我收到“必须安装供应商库”错误,并建议运行php composer.phar install安装它们。

我正在采取的确切步骤:-

这似乎运行没有任何问题,据我所知,确实下载了所有必要的供应商包。但是,如果我然后运行:-

这导致:-

* 必须安装
  供应商库 > 供应商库缺失。按照http://getcomposer.org/
中的   > 说明安装作曲家。然后运行“php   > composer.phar install”来安装它们。

我试过运行composer update, composer install,删除作曲家缓存,但到目前为止我没有尝试解决这个错误。

通过测试多个 Symfony 版本,我在 Symfony >= 2.5.0 的所有版本中都遇到了这个错误。我使用 Symfony <= 2.4.8 以相同方式创建的任何项目都可以正常工作。

我在 OS X 上运行 PHP 5.6.4(通过 MacPorts 安装)。

说到作曲家,我有点菜鸟,所以任何帮助都将不胜感激!

0 投票
1 回答
731 浏览

angularjs - 在客户端使用 cookie 的 REST API 身份验证和授权工作流

我正在 Symfony2 中构建一个 REST API 应用程序,并试图找到一种处理用户身份验证和授权的好方法。那里有很多解决方案,但到目前为止,它们都没有解决我所有的要求/顾虑。

该 API 将主要由 AngularJS SPA 使用,用户使用用户名和密码组合登录。让 GUI 用户能够:

  • 使用用户名和密码登录
  • 使用“记住我”复选框“永远”登录(可能一周或类似的时间)
  • 同时在不同的浏览器上使用“记住我”(如 facebook)
  • 从浏览器中删除 cookie 以注销用户

在服务器端,我想保持严格的 RESTful。我想出了一个似乎是我需要的解决方案,但我想确保我没有遗漏任何东西。

从服务器的角度来看成功登录尝试的工作流程:

  1. 使用用户名和密码在 /login API 端点上接收 POST
  2. 生成一个新令牌并将其返回给客户端。在 db 中保存该令牌的哈希值。
    • 每个令牌数据库条目必须有一个预定义的生命周期(在配置中设置)
      • 过期日期时间必须存储在数据库中
      • 旧的令牌哈希必须在过期时从数据库中删除(在登录尝试时或通过 cron)
    • 令牌与用户是多对一的——用户可以在任何给定时间拥有多个活动令牌

从服务器的角度来看,登录用户的授权工作流程:

  1. 从授权标头中提取令牌
    • 用户 ID 也可能包含在请求中,待定
  2. 哈希令牌并将其与数据库中每个用户的哈希值进行比较
  3. 如果其中一个 db 哈希与请求哈希匹配并且未过期,则更新哈希过期并授权用户

从客户端 (GUI) 的角度来看,成功登录尝试的工作流程:

  1. 使用用户名和密码向 /login API 端点发送 POST 请求
  2. 接收服务器生成的令牌。存储在浏览器的cookie中(使用js,服务器不设置cookie)

从客户端(GUI)的角度对登录用户进行授权的工作流程:

  1. 从 cookie 中读取 token 并在请求中设置 Authorization 标头,例如 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
    • 始终从 cookie 中读取令牌,因为用户可能希望删除它以在浏览器中注销自己。

如果登录失败(cookie 被删除或 401 响应)丢弃所有表单数据,删除 cookie 并重定向到登录屏幕。

显然,存储在客户端的 cookie 将在每次请求时传递给服务器,因为这就是 cookie 的作用,但服务器会忽略它。cookie 仅供客户端使用。增加的带宽开销被认为可以忽略不计。

这个工作流程看起来好吗?我错过了什么吗?

0 投票
1 回答
4218 浏览

php - login_check 使用 FosUserBundle 在登录表单中执行错误的重定向

我使用了一个覆盖 FosUserBundle 的 UserBundle,在那里我users为所有用户路由设置了前缀:

如果我用 来检查路线php app/console route:debug,它们会以预期的前缀显示:

我使用以下 url 显示登录表单:

http://www.foo.local/app_dev.php/users/login

为了管理提交,我在我的树枝模板中使用了这个路径:

处理模板后,它会生成所需的操作 url:

我的 security.yml 配置是这样的:

但是,如果我使用此表单登录用户,它会将我重定向到http://www.foo.local/app_dev.php/login,而不是http://www.foo.local/app_dev.php/users/login,给出“找不到路由错误”

我怎样才能解决这个问题?

0 投票
1 回答
2652 浏览

php - Symfony2登录后成功处理程序不起作用

目标是在 Symfony2 中认证成功后做一些事情。

为了做到这一点,我扩展AuthenticationSuccessHandlerInterface了为表单登录创建服务,以便成为其成功处理程序。

这是 security.yml 文件中的防火墙(声明成功处理程序的位置):

这是LoginSuccessHandler服务(在 UserBundle 中创建):

这是来自 UserBundle 的 services.xml:

正在调用构造LoginSuccessHandler函数,我没有收到任何错误消息。

我遇到的问题是onAuthenticationSuccess登录成功后没有被调用。可能是我错过了什么?