问题标签 [symfony-4.3]

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 投票
2 回答
647 浏览

php - Symfony 表单未更改字段返回验证类型错误

尝试更新实体并提交具有未更改值的字段会导致类型错误。我究竟做错了什么?

实体:

表格类型:

控制器:

我正在使用 PostMan 提交表单数据。如果我正在更新的实体的 recordQuota 为 1000,我提交的表单具有不同的值。这一切都有效和更新。

但是,如果我使用 recordQuota: 1000 提交我的表单,这应该使值保持不变,我会收到一个不正确的类型错误:

附加信息:

我正在使用$form->submit而不是handleRequest因为我正在使用补丁。所以我需要能够启用/禁用$clearMissing. 但即使使用也会handleRequest产生同样的问题。

即使在将它传递给表单之前将 recordQuota 类型转换为 int 仍然失败。

如果我从表单和实体中删除所有类型信息,我会在实际进行更改时得到“这个值应该是字符串类型”。

0 投票
2 回答
62 浏览

symfony - Symfony 4.3 Multiple ChoiceType 使用 PATCH 时只能添加值不能删除

给定形式:

和实体:

通过添加值提交表单时......一切正常。但是当删除值时......这些值不会被删除,并且永远不会调用 setter。

奇怪的是,将表单方法切换为 GET 可以解决此问题。

这是怎么回事?

- - 编辑 - -

这是一个重现此问题的控制器:

- - 编辑 - -

使用 POST 进行测试非常有效。但是使用 PATCH 失败了。所有其他字段都会更新。并添加到数组中。但是从数组中删除不会。我在上面添加了相关的 PATCH 代码并更新了标题以澄清问题。

0 投票
1 回答
2830 浏览

php - 如何在 YAML 中使用 API 平台过滤器?

首先,我想通知您,我已经阅读了有关我今天遇到的问题的文档,并且我还在 StackOverflow 和 Google 上进行了搜索,但没有找到合适的解决方案。

为了练习,我正在使用 Symfony 4 和 API 平台构建客户关系管理 API。我已经学到了很多关于 API 平台的知识,即使我可以使用注解来配置资源,我还是强迫自己使用 YAML 来了解更多信息。

所以,我有一个 Customer 资源,它有几个属性:idfirstnamelastnameemailAddresscompanycreatedAtupdatedAtowner。我的目标是在这个资源上添加一个SearchFilter(在 YAML 中)并将大部分属性添加为这个过滤器的属性。

我已经尝试过这里给出的解决方案:https ://github.com/api-platform/core/issues/1755 。问题是我无法让它工作。在 services.yaml 中,我看到您可以添加参数,但我不知道您可以在注释中找到什么等价物...

config/services.yaml

resources/customer.yaml

我打算做的是与此类似的注释src/Entity/Customer.php

我希望你能提供帮助,并且我的问题得到了清楚的解释。如果没有,请告诉我,我会尽力为您提供更多详细信息。

谢谢!

0 投票
1 回答
231 浏览

php - 安装期间 Symfony 4 和 Sonata News Bundle 错误

在安装 SonataNewsBundle 时出现以下错误。

错误

并跟随错误

在此处输入图像描述

我只是从这里关注了官方文档。

有人可以帮忙吗?

0 投票
1 回答
213 浏览

php - Symfony 4.3.2 和 FOS 用户捆绑控制器的注入依赖性问题

我正在使用 Symfony 4.3.2,似乎 FOS 用户包不适用于此版本。每次我尝试从此捆绑包(“/register”、“/profile”等)调用操作时,都会收到此错误

控制器“FOS\UserBundle\Controller\RegistrationController”具有必需的构造函数参数,并且在容器中不存在。您是否忘记定义此类服务?

将依赖项注入 FOS 用户捆绑控制器似乎存在一些问题。你知道如何解决这个问题吗?我没有尝试覆盖默认的 FOS 用户捆绑控制器。操作“/login”确实有效,因为 FOS 用户捆绑安全控制器中有可为空的参数。

0 投票
1 回答
47 浏览

php - 一个项目的多个安全配置

如何加载有关 Env 变量的特定安全配置。

我的目标是将 LDAP 用于内部项目,将数据库提供程序用于外部项目

0 投票
0 回答
37 浏览

symfony-security - Symfony 安全组件不记得会话

我在 PHP 7.3.4 上使用 Symfony 4.3.2 这是我的 security.yaml

当然,我有表单、控制器和视图。

现在发生的是:

  • 当去 /admin 我被重定向到 /admin/ 表单
  • 我成功验证并返回 /admin/login。
  • 在那里,安全决定忽略我的身份验证并创建一个新的匿名会话
  • 身份验证后 /login 也有同样的问题,我以匿名方式返回 /

我在分析器中检查了我的请求,当在我的表单上发布时,我可以在我的用户会话中看到会话“_security_main”。

C:74:"Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken":294:{a:3:{i:0;N;i:1;s:4:"main";i:2;a:5:{i:0;C:15:"App\Entity\User":29:{a:2:{i:0;i:8;i:1;s:4:"test";}}i:1;b:1;i:2;a:1:{i:0;O:41:"Symfony\Component\Security\Core\Role\Role":1:{s:47:"\x00Symfony\Component\Security\Core\Role\Role\x00role";s:13:"ROLE_CUSTOMER";}}i:3;a:0:{}i:4;a:1:{i:0;s:13:"ROLE_CUSTOMER";}}}}"

但是在我的旧 Symfony 项目 3.4 中,我成功地进行了身份验证并获得了我的管理会话。

我不明白为什么在我的新版本上它不起作用..也许会话生命周期?会话的权利可写?

唯一可行的解​​决方案是勾选“记住我”框

谢谢帮助我

0 投票
1 回答
654 浏览

symfony - 自定义 UserProvider 配置 symfony 4

我想创建自己的 LdapUserProvider 以应用有关用户名的不同角色。准确地说,我的 LDAP 与 symfony 的默认 LdapUserProvider 配合得非常好。

正如LDAP 文档所说:

ldap 用户提供程序,使用 LdapUserProvider 类。与所有其他用户提供程序一样,它可以与任何身份验证提供程序一起使用。

请问如何使用自定义的用户提供程序?

编辑: 谢谢你的回答@Vyctorya

我想这就是我需要的!

在 security.yaml 这就是我调用服务的方式:

这是我的 service.yaml:

我不明白为什么未定义 baseDn ......

无法自动装配服务“App\Services\MyLdapUserProvider”:方法“Symfony\Component\Security\Core\User\LdapUserProvider::__construct()”的参数“$baseDn”是类型提示的“字符串”,您应该明确配置其值.

0 投票
0 回答
61 浏览

symfony-4.3 - 路由 symfony4 中的 NotFoundHttpException

我刚刚创建了我的第一个 symfony 4 应用程序,我想尝试路由,但它甚至没有工作它只是停留在主路由欢迎使用 symfony 4 等......注释或 routing.yml 都没有工作我不知道在哪里是问题所在,当我运行 debug:router 它读取路径和名称但不读取方法名称

0 投票
1 回答
558 浏览

apache2.4 - Symfony 4.3 总是返回无效的 CSRF 令牌

系统信息:

  • Ubuntu 18.04.1
  • 阿帕奇 2.4.29
  • PHP 7.2.19

服务器总是报告登录表单上的 csrf 令牌无效。我已经按照 symfony 指南进行了一些 Symfony 指南https://symfony.com/doc/current/security/csrf.html#csrf-protection-in-login-formshttps://symfony.com/doc/current/安全/form_login_setup.html

我已经到处搜索了,似乎找不到可以看的东西。我已经检查了各种文件权限,我唯一能想到的就是在我知道它可以工作的地方使用 php 7.1 版。

在这里您可以看到在 /login 上生成的令牌和
在此处输入图像描述

和身份验证器中的相同数据 在此处输入图像描述