问题标签 [symfony-3.2]
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.
ajax - Symfony 如何测试 AJAX 请求
在我的项目中,我有一个发送 AJAX 请求的表单:
这会激活以下控制器方法:
我希望能够单独测试这个请求,但我不确定如何编写请求对象。
到目前为止,我的第一次尝试:
失败,因为它似乎正在提交表单(我收到一个与 AJAX 请求完全无关的表单字段相关的错误为空白)。
谁能演示如何正确编写这样的测试?
php - 除了 PHPUnit,还有其他方法可以测试 Symfony 应用程序吗?
在一次采访中,项目经理问了我以下问题:
我在您的简历中看到您正在使用 PHPUnit 4 进行测试?为什么不使用 Symfony 的内置测试?
我回答了:
我所知道的是 Symfony 应用程序测试是通过 PHPUnit 完成的,这是从 2.3 和 2.7 的文档中推荐的。我不知道 Symfony3 是否带有测试组件!
我的回答正确吗?感谢您的解释。
php - Symfony api-platform 不会附加到事件监听器
api-platform.com 的事件不会附加到我的听众。我从他们的事件矩阵中尝试了几种组合,但它仍然不会触发。
这是我的听众课
命名空间 AppBundle\Event\Listener;
GET /projects/1
我期待当我点击and时会出现“这应该触发” GET /projects
,但它没有触发。想法?
symfony - 在 SonataClassificationBundle/CategoryAdmin 中覆盖 show.html.twig
我试图 show.html.twig
在上下文中覆盖SonataClassificationBundle/CategoryAdmin
我试过把它放进去,/app/Resources/SonataClassificationBundle/views/CategoryAdmin/show.html.twig
但它不起作用。
我正在使用 Symfony 3.2.7。
php - Symfony 3/Doctrine - 在创建表模式时用一些行填充表
我想在第一次创建数据库表后立即填充它,可能需要运行以下命令:
基本上,这将是一个包含一些静态数据的静态表。我需要这样做,因为数据库将动态创建。所以不能通过硬编码来填充它。
php - Symfony3 更新用户数据并使当前会话无效
据我了解,当用户成功登录时,Symfony 将在数据库提供程序或数据库提供程序中保留User
文档/实体的副本session.handler.native_file
,以配置为准。在将来的请求中,会使用 cookie 中保存的会话 ID 检索此信息。
我的问题是每当用户更新其密码或用户名(这是他们的电子邮件)时,以前在不同计算机或浏览器上打开的会话不会过期或设置为无效。
应该对此EquatableInterface
进行检查,但它并没有真正为我工作。当我将以下存根添加到User
类中时:
随后在浏览器上刷新,没有任何改变。我的会话仍然有效,并且User
使用 a 检查获取dump($this->getUser())
给了我当前更新的内容User
,而不是在会话开始时存储的内容。
我尝试使用:
如果它会做任何事情,但它真的没有用。
使用Symfony Profiler,我看到User
每次我发出请求时都会从数据库中获取 a ,我想知道此时是否UserProviderInterface
刚刚更新了用户,security.token_storage
而不是在必要时首先检查对结束会话的更改。
为了确保发生这种情况,我在两个不同的浏览器上测试了这个控制器:
我在两个浏览器上登录了我的应用程序,然后在浏览器 A 上注销。我将User
密码更改为'MY_NEW_PASSWORD'
并刷新浏览器 B。转储true
用于新密码。
如果是这种情况,我想知道: -在User
从 security.token_storage
(我猜这将是一个在 fetch 事件上运行的服务。)
或者也许我把事情复杂化了,有一个超级简单的解决方案,我只是还没想出来=|
php - 如何将 Bundle/Resources 文件夹移动到 Symfony 中的子文件夹?
我想将 Symfony3 Bundle 构建成子模块。
为此,我想将 Bundle/Resources 文件夹(带有视图、配置和公共)与控制器类一起移动到子文件夹中。
带有 DemoBundle 和 Messages 模块的示例。目录应该是这样的:
我可以通过在 routing.yml 文件中创建一个条目来移动控制器,如下所示:
控制器现在看起来像这样:
当我现在导航到这条路线时,我收到一个错误:“找不到模板”。该错误表明它仍在查看 /demo/Resources/views 而不是 /demo/messages/Resources/views。
问题:我可以告诉 symfony 查看文件夹 /demo/messages/Resources/views 吗?这有可能吗?还是我在 $this->render(...) 中的模板寻址错误?
到目前为止,为模板参考尝试了以下版本:
效果:错误:找不到模板
~~~
作品!
我为每个子模块选择这个结构而不是 Bundle 的原因是我想将用户界面封装在这个 Bundle 中,而我想在 AdminBundle 中组织管理界面。
firewall - 防火墙不起作用 Symfony3
我正在尝试配置防火墙,但是当我继续时我没有重定向到登录页面http://localhost/project1/web/app_dev.php/
我已经在另一个 symfony2 项目中使用过这种类似的配置,但我从来没有遇到过这个问题。
也许我忘了做某事......我做了一个缓存:清除但之后没有结果。
我的security.yml:
php - Symfony3. 访问受保护的点播用户内容
我正在寻找一些想法(-s)我如何在 Symfony3 中或通常在 symfony 中解决此类任务。
假设我允许用户在页面上创建一些内容(即帖子或文章)。问题是该内容的一部分可以根据用户的要求进行限制。因此,例如用户正在创建 Article1 和 Article2 并且他指定 Article2 将由他自己定义的一些密码/令牌保护。如果有人匿名尝试通过 url Article1 访问,他将能够看到内容,但是当有人使用 Article2 的 Url 时,会弹出某种公式,提示“输入密码以访问此特定区域”或类似的提示.
有没有办法以 symfony 3 的方式解决这个问题?
现在我会以这样的方式解决这个问题,在控制器中(即 showArticleAction)我将检查请求的文章是否受到保护。如果不是正常的方式将被使用(模板等的渲染),但如果该部分受到保护,我会将用户重定向到一些额外的“登录控制器”,他可以只为这个特定内容输入密码。如果密码匹配,他将被重定向到受保护的文章。
我不想使用 acl 或类似内容,因为每个内容都可以有自己的保护,并且使用 acl 我将被迫为每个受保护的文章动态创建组,因为有权访问第 2 条的用户无法访问另一个受保护的文章,因为它可以通过密码/令牌具有完全另一种保护,也可以由不同的用户创建
正如我所提到的,我强烈希望遵循“symfony3”规则,没有我或任何一方的任何技巧:)
我很高兴阅读您的想法和提示。
最好的问候,康拉德