问题标签 [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.
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
symfony - Symfony-2,在 buildForm() 函数中插入用户
我有两个实体(用户和项目),带有生成的 CRUD 选项。实体之间的关系是 OneToMany 双向的(用户 1 - * 项目)。在 project/new 中,CRUD 为用户生成了下拉列表,但我想自动设置登录用户,而不是从下拉列表中选择它。
这是 ProjectType/buildForm() 函数:
我可以在 buildForm() (来自会话?数据库?)或其他地方将登录用户设置为项目创建者吗?谢谢。
php - 新主题字段渲染问题
安装新的 Symfony2.6 以及集成的 Bootstrao 表单主题后。我现在在渲染 Money 字段时遇到了问题。
一张图片可能比试图描述它更容易。
用于从 Bootstrap_3_layout.html.twig 中呈现字段的代码如下所示:
渲染的 Html 看起来像这样:
在升级到 2.6 之前,这些字段工作得非常好。
我检查了在 php.ini 和 config.yml 中启用了 Intl 扩展,我有以下设置:
symfony - Symfony2 表单中的自定义实体数据处理
我目前正在使用Symfony 2.6在网站上实现通知首选项。
持有通知偏好的实体如下:
目前大约有 15 个这样的不同键,但我现在还想允许为每种类型配置Email、SMS和Dashboard通知。我没有为每种类型创建两个额外的列,而是考虑将每个$*Enabled
列类型从更改boolean
为 Doctrine array
,并将数据作为关联数组 ( ['dashboard' => true, 'email' => false, 'sms' => true]
) 保存在每个表列中。
我的问题是关于然后将此array
列连接到 Symonfy表单类型。据我了解,我可以为该字段创建一个自定义类型,并使用它而不是'checkbox'
我当前使用的类型。像这样的东西:
...和主要形式类型...
但是后来我不明白如何用实体中的数据填充'checkbox'
类型的值。NotificationSettingType
array
编辑 1
进一步澄清:
我正在寻找如何将数据从/绑定到UserNotification
特定的列。
例如,说:
然后在NotificationSettingType
本专栏中:
'dashboard'
会被检查'email'
将不被选中'sms'
会被检查
然后,在提交之后,例如,如果我取消选中SMS,则新数组将在列变量中为:
我知道如何传递选项,但我不知道如何转换这些数据以使其与 Symfony2 表单类型兼容。
json - Symfony 2.6 - Flot 图表无法从 JSON 正确填充
我正在尝试使用根据学说查询结果创建的 JSON 填充 Flot Pie 图表,但未成功。以下是详细信息...
控制器:
JSON结果:
Javascript:
当前结果(未定义的标签和应有的标签): http: //oi61.tinypic.com/28srjut.jpg
期望的结果: http: //oi59.tinypic.com/sncwtx.jpg
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
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 安装)。
说到作曲家,我有点菜鸟,所以任何帮助都将不胜感激!
angularjs - 在客户端使用 cookie 的 REST API 身份验证和授权工作流
我正在 Symfony2 中构建一个 REST API 应用程序,并试图找到一种处理用户身份验证和授权的好方法。那里有很多解决方案,但到目前为止,它们都没有解决我所有的要求/顾虑。
该 API 将主要由 AngularJS SPA 使用,用户使用用户名和密码组合登录。让 GUI 用户能够:
- 使用用户名和密码登录
- 使用“记住我”复选框“永远”登录(可能一周或类似的时间)
- 同时在不同的浏览器上使用“记住我”(如 facebook)
- 从浏览器中删除 cookie 以注销用户
在服务器端,我想保持严格的 RESTful。我想出了一个似乎是我需要的解决方案,但我想确保我没有遗漏任何东西。
从服务器的角度来看成功登录尝试的工作流程:
- 使用用户名和密码在 /login API 端点上接收 POST
- 生成一个新令牌并将其返回给客户端。在 db 中保存该令牌的哈希值。
- 每个令牌数据库条目必须有一个预定义的生命周期(在配置中设置)
- 过期日期时间必须存储在数据库中
- 旧的令牌哈希必须在过期时从数据库中删除(在登录尝试时或通过 cron)
- 令牌与用户是多对一的——用户可以在任何给定时间拥有多个活动令牌
- 每个令牌数据库条目必须有一个预定义的生命周期(在配置中设置)
从服务器的角度来看,登录用户的授权工作流程:
- 从授权标头中提取令牌
- 用户 ID 也可能包含在请求中,待定
- 哈希令牌并将其与数据库中每个用户的哈希值进行比较
- 如果其中一个 db 哈希与请求哈希匹配并且未过期,则更新哈希过期并授权用户
从客户端 (GUI) 的角度来看,成功登录尝试的工作流程:
- 使用用户名和密码向 /login API 端点发送 POST 请求
- 接收服务器生成的令牌。存储在浏览器的cookie中(使用js,服务器不设置cookie)
从客户端(GUI)的角度对登录用户进行授权的工作流程:
- 从 cookie 中读取 token 并在请求中设置 Authorization 标头,例如 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
- 始终从 cookie 中读取令牌,因为用户可能希望删除它以在浏览器中注销自己。
如果登录失败(cookie 被删除或 401 响应)丢弃所有表单数据,删除 cookie 并重定向到登录屏幕。
显然,存储在客户端的 cookie 将在每次请求时传递给服务器,因为这就是 cookie 的作用,但服务器会忽略它。cookie 仅供客户端使用。增加的带宽开销被认为可以忽略不计。
这个工作流程看起来好吗?我错过了什么吗?
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,给出“找不到路由错误”
我怎样才能解决这个问题?
php - Symfony2登录后成功处理程序不起作用
目标是在 Symfony2 中认证成功后做一些事情。
为了做到这一点,我扩展AuthenticationSuccessHandlerInterface
了为表单登录创建服务,以便成为其成功处理程序。
这是 security.yml 文件中的防火墙(声明成功处理程序的位置):
这是LoginSuccessHandler
服务(在 UserBundle 中创建):
这是来自 UserBundle 的 services.xml:
正在调用构造LoginSuccessHandler
函数,我没有收到任何错误消息。
我遇到的问题是onAuthenticationSuccess
登录成功后没有被调用。可能是我错过了什么?