问题标签 [symfony-4.4]
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 - 如何从 .env 文件中获取键的值?
在.env文件中有键值的设置;例如 :APP_ENV=prod
例如,如何获取键的值APP_ENV
?
symfony - Symfony 4.4 - “找不到“GET /”的路由”
我在服务器上收到以下错误:
路由在 /config/routes/annotations.yaml 中正确定义
在本地,该应用程序可以正常工作。它只发生在我部署 Symfony 应用程序的主机上。缓存已被清除php bin/console cache:clear
。我什至通过 Composer 删除var/*
并vendor/*
重新安装了这些软件包(顺便将其升级到了最新版本)。关于应用程序,它是 - Symfony v4.4.19 Flex。
php - symfony - 在 form->handleRequest 处注销
我的 Symfony4 应用程序有问题。
怎么了?
我想为当前登录的用户构建一个“更改密码”功能。到目前为止,一切都很好。当我提交表单时,一切似乎都正常(重定向到正确的页面,显示页面,..)。但是当我想导航到另一个页面时,由于没有身份验证,我被重定向到我的登录页面。在那里我发现,密码也没有改变。
我非常感谢任何形式的帮助!
编辑
无论是否有错误,只要提交表单,就会发生注销。
控制器
表格类型
枝条
symfony - LANG 变量在测试环境中未被覆盖
我正在开发一个 Symfony 4.4 项目。该项目是从头开始创建的(它不是来自 3.4 代码库或类似代码的更新)。我正在向我的代码库添加自动化测试,但我遇到了环境变量问题。
在我.env
的.env.local
,.env.test
和.env.test.local
我定义了一个LANG
变量,来设置应用程序语言。为了在我开发时正确测试翻译,在我设置的dev
环境(.env.local
文件)中LANG=es
,它工作正常。在生产中它也可以正常工作,但在测试中,在.env.test.local
我设置的文件中, LANG=ca
PHPUnit 也没有bin/console debug:container --env-vars --env=test
显示这个变量的正确值,它的值只是Ubuntu 系统中变量es_ES.UTF-8
的值。$LANG
我在.env.test.local
文件中定义了其他环境变量,这些都是正确的(如DATABASE_URL
)。我也尝试LANG
在phpunit.xml.dist
文件中添加 ( <env name="LANG" value="ca" />
),但它的值没有改变,它仍然是es_ES.UTF-8
.
我也删除了var/cache/test
目录,但它仍然不起作用。
我做错了什么?我可以做些什么来更改测试环境中的语言?
symfony - Symfony 4.4 - 自定义错误模板不起作用
在 Symfony 4.4 Flex 中使用自定义错误模板时,我遇到了一个问题。根据https://symfony.com/doc/4.4/controller/error_pages.html中的指南,一切都已正确设置
当我运行应用程序时,我可以访问自定义错误模板- 但如果我更改为prod(当然设置为false/0),我会得到默认的 Symfony“500 内部服务器错误”页面。我什至在远程主机上部署应用程序后对其进行了测试,当我尝试访问 /random-unexisting-page 时,它也是同样的问题(已经得到了 error404.html.twig 模板集并且它通过 /_error 在“dev”上工作/404)。/_error/{errorCode}
APP_ENV=dev
APP_ENV
APP_DEBUG
我想知道,它与 /config/ 中的其他配置有什么关系吗?你知道问题可能是什么吗?
symfony-4.4 - 用户 App Entity User 没有用户提供程序 您的用户提供程序的 supportsClass() 方法不应该为这个类名返回 true 吗?
我创建了一个电子邮件/密码登录表单并遇到了一个非常令人失望的问题:(
首先,这就是我得到的(我使用的是 Symfony 4.4.18):
&这些是我的代码:
这是用户实体(添加了 supportClass() 方法)App\Entity\User:
登录表单验证器 App\Security\LoginFormAuthenticator(未使用 bin/console make:auth):
登录控制器 App\Controller\LoginController:
login.html.twig:
security.yaml 配置:
我对supportsClass()一无所知。& 之前尝试过自定义用户提供程序的用户存储库,但他们没有工作
php - 如何控制 Symfony 的 RepeatedType 验证序列
我在注册表单上使用 Symfony 的RepeatedType作为电子邮件地址。
我还为属性声明本身添加了约束:
问题是 Symfony 在运行特定属性之前运行 RepeatedType 验证。
换句话说,如果您输入了错误的电子邮件地址,它将首先确保您输入了错误的电子邮件地址两次,然后才告诉您它是错误的。
顺便说一句,这同样适用于我的密码 - 它断言您在告诉您未满足密码强度要求之前正确地重新输入了密码。
我知道我可以控制验证组的顺序,但由于 RepeatedType 没有应用于模型本身,我不确定如何实现这一点。
php - 从 Symfony 3.4 迁移到 Symfony 4.4 后,自定义投票器无法正常工作
我正在将应用程序从 Symfony 3.4 迁移到 Symfony 4.4。此应用程序使管理员用户可以编辑访问每条路线所需的角色,因此所有角色和路线都存储在数据库中。
为了检查用户是否可以访问路由,每个请求都会调用一个投票者,并在services.yaml
文件中进行配置。
在 Symfony 3.4 中,每个请求都会调用投票者,而无需添加任何代码。在网络分析器中,我可以看到选民名单,以及 AccessDecisionManager 的决定(“授予”或“拒绝”)。
Symfony 3.4 的 Web Profiler 的屏幕截图
然而,在 Symfony 4.4 中,选民似乎根本没有被召唤。在网络分析器中,我的自定义选民仍在列表中(两次??),但没有来自 AccessDecisionManager 的决定。
Symfony 4.4 的 Web Profiler 的屏幕截图
如果我通过添加此行直接从控制器检查用户访问权限$this->denyAccessUnlessGranted("", $request);
,则会调用选民并按预期工作。
如果有人可以向我解释为什么我必须denyAccessUnlessGranted()
在 Symfony 4.4 中手动调用 Symfony 3.4 中不需要的方法?我在 3.4 中是否以错误的方式使用选民?
谢谢你。
我的自定义选民类:
我的自定义选民在 services.yaml 文件中配置为服务:
我的 security.yaml 文件,如果有帮助的话:
php - 在 symfony sonata admin 中创建多级子级
我想问一下如何在奏鸣曲管理员中创建多级子级?我有一个与同一类有 childSection 关系的 Section 类。我怎么能遇到section可以有childSection而childSection可以有另一个childSection等的情况...
这是我的实体类:
服务.yaml
管理类:
SectionAdmin.php
我面临以下错误:
检测到服务“admin.section”的循环引用,路径:“admin.section -> admin.section”。
有什么方法可以在不限制奏鸣曲管理中的孩子深度的情况下创建孩子吗?
symfony - Symfony 4.4 不包括 .env.local
4(升级)。不包括 .env.local 可能是什么原因?
.env 被正确解析
我有“symfony/dotenv”:“^4.4”,但测试“symfony/dotenv”:“v5.2.4”,-同样的情况