问题标签 [symfony5]
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 - Symfony 5 在表单提交后向表单添加字段
假设我有以下形式:
提交表单后,我想向其中添加用户无法完成的另一个字段。让我们打电话给有问题的领域new_field
。
到目前为止,我已经尝试使用表单事件:
而且我显然遇到了一个异常:You cannot add children to a submitted form
,这很公平。
我可以做的另一件事,我非常不想做,因为它看起来很hacky是在控制器中创建一个新实体,设置我从表单获得的数据并保存它。
我还可以为表单创建一些通用父级并对其进行修改,但这似乎更加hacky。
我不反对这里的另一种方法。也许我一开始就看错了。
php - Symfony 5 SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo 失败:
我正在尝试运行
我收到了这些错误
我检查了我所有的 .env 文件。我已经配置了
我已将教义配置更改为使用 server_version:'5.7'。我不确定这是否正确。我刚刚从该行前面删除了#,因为注释说您必须配置您的服务器版本。但不确定它指的是哪个服务器。
所以,我的问题是如何在 Symfony 中测试数据库连接。我已经搜索了这些文件,但无法找到这个问题的明确答案。当我跑
这会产生错误
进行配置更改后,我已经清除了两次缓存,但仍然收到相同的错误消息。我还有什么其他方法可以测试数据库连接。
https://symfony.com/doc/current/doctrine.html#configuring-the-database
php - 属性路径中给出的“字符串”、“对象”类型的预期参数
我正在尝试更改用户的密码。在下拉列表中选择用户。
首次呈现表单时,我会看到用户列表。然后我填写新密码并提交。然后我得到错误:“在属性路径用户名处给出的类型为“字符串”、“对象”的预期参数”。错误发生在控制器中
$form->handleRequest($request);
这是控制器:
我认为有一个属性需要是字符串而不是对象。这只是与用户名属性有关。我试图在用户实体上添加一个 toString 方法但没有成功。我必须改变什么才能摆脱错误并将新密码保存到数据库中。
symfony - Symfony 5 自定义 404 页面
我正在尝试为 Symfony 5 项目创建一个自定义 404 页面,该页面必须:
- 输出一个简单的 JSON 编码字符串,例如“未找到”。
- 必须从翻译资源中读取所述字符串。
- 有一个额外的
Content-Type: application/json
标题。
Symfony 文档中有一个部分试图解释如何实现这一点,但信息似乎不完整/不正确,显然是为 4.X 版本编写的,甚至指向 GitHub 上不存在的源文件。
我设法创建了一个错误控制器,但它吞噬了所有错误:
问题是这会导致返回 404 页面的任何错误(包括内部错误)。
我怎样才能让这个控制器/方法只处理 404 错误,而让框架本身像以前一样处理其他一切?
php - 如何在 symfony 5 中包含类?
我有一个带有 Paysafecard 类的 php 文件。文件名为 Paysafecard.php。我想将它包含在我的控制器中。我该怎么做?
php - 数组中的 Twig 变量
认证控制器:
通常我在树枝模板中使用{{ lang.stringname }}
. 在这种情况下,我想调用一个带有值的字符串,该值是通过“消息”提交的。
我试过这个:
和
错误信息是:
有人有想法吗?谢谢你。
forms - Symfony 5 动态表单条件默认逻辑
我有一个用例,我需要在 Symfony 5 中构建的动态表单上使用一些默认条件逻辑。
让我试着用一个简单的表格来解释我的用例是什么以及我的问题。例如,我有一个包含两个字段的表单产品:
- 部分(选择类型 => 左、右)
- 长度(数字类型)
更改时,所有字段 (:input) 都通过 Ajax 请求提交。我有两种控制器方法,一种用于访问页面(正在构建表单),另一种用于通过 ajax 请求呈现表单(处理条件逻辑)。
对于条件逻辑部分,需要完成以下操作
- 剩下部分时,默认长度需要为 50
- 当部分正确时,默认长度需要为 100
- 用户可以更改默认数据
根据左或右设置长度的默认数据不是问题。选择 left 时,默认长度变为 50。当将值更改为 55(每次更改都提交表单)时,它再次变为 50。这种行为是合乎逻辑的,但是如何覆盖默认数据呢?
上述情况也可以描述为给用户默认数据并选择更改它
表格类型
控制器
unit-testing - 在测试客户端中访问请求容器(event_dispatcher)
我在 Symfony 中创建了一个简单的测试用例。因此,一个客户端应该侦听将在请求期间调度的事件。但是什么也没发生,因为请求有自己的范围,或者我不知道为什么我无法访问其中的调度程序。
永远不会调用侦听器。当我稍微调试一下时,我发现对象哈希通过spl_object_hash($dispatcher)
在最高级别上与在request
级别内不同。所以似乎request
有一个自己的世界,而忽略了外面的一切。
但接下来的问题是如何让我的听众进入这个“世界”?
php - 带有 MicroKernelTrait 的 Symfony 5 微应用程序抛出错误“控制器没有容器集”
我正在尝试使用 Symfony 5 构建一个微应用程序,单文件方法有效,但使用 Twig 等的高级示例却没有。
我按照此处发布的确切描述构建了一个测试项目:https ://symfony.com/doc/current/configuration/micro_kernel_trait.html ,我具有与示例相同的目录结构和相同的文件内容:
这是启动应用程序的 index.php:
这是带有(示例)操作的微控制器:
调用 Kernel.php 中的方法“configureContainer”并运行没有错误:
但是项目仍然没有运行,调用有效的路由(例如示例中的“/random/10”)给我错误:“ “App\Controller\MicroController”没有容器集,你忘记将它定义为服务订户? ”
我的 composer.json 看起来像这样:
我错过了什么?任何提示表示赞赏。