问题标签 [symfony6]
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.
symfony6 - 在 Mac 上使用 Docker 进行 Symfony 6 开发
我正在 Symfony 6 上开始一个新项目。每次我对项目进行更改时,var/cache
都会完全重建,因此对应用程序的下一个请求总是超时。
我可以做些什么来禁止var/cache
在每次更改时重建?或者甚至不使用这个缓存?
translation - Symfony 6 翻译词组
如何正确翻译每个实体/控制器的 symfony(基于在分析器中可以看到的参数)?
我已经安装了 EasyAdminBundle4 和翻译模块。我可以使用 messages.language.yaml 文件翻译单词,例如:
但是如何翻译“创建用户”之类的单词组合呢?EasyAdmin 按单词翻译,我找不到翻译文件,VS Code 说我的项目中不存在这些单词。但它们是被翻译的,所以它们一定在某个地方。在哪里?
在探查器中,我看到带有 id 的消息。例如带有参数实体“用户”的 action.edit 我想成为“编辑用户实体”,对于实体类别我希望它是“带有类别的某些操作”。我如何实现这一目标?
php - 更改 Twig Loader 顺序
所以我在我的项目中为存储在数据库中的模板创建了一些树枝加载器。只需让它们实现 LoaderInterface 就已经自动将它们添加到默认的 Twig\Loader\ChainLoader - 但是,我还没有找到配置顺序的方法。
当我检查 ChainLoader 中有哪些加载器时,它是
,但我希望订单是
如果我在 services.yaml 中定义 twig.loader,它总是以无限递归结束,并且没有任何效果。如果我手动配置对 twig.loader.chain 的调用,我会得到正确的加载器顺序,然后是链加载器 X,然后是“自动配置”顺序的加载器。Chainloader X 与 Symfony 配置的 ChainLoader 相同,所以......如果找不到模板,则无限递归。
那么我到底如何告诉 twig 哪些加载器以什么顺序加载呢?我需要为这个简单的要求创建一个 CompilerPass 吗?
php - Deployer 7 发行版使用 dotenv 变量
问题
在 Symfony 6 应用程序中使用部署程序需要我从更改deployer/deployer
为deployer/dist
( 7.0.0-rc.3
),缺点是我不能.env
再像以前那样从我的环境变量加载。
情况
我有deployer/deployer
以下示例在部署脚本中使用 dotenv 变量:
但是deployer/dist
我不能再这样做了,给出错误信息:
有人可以首先解释为什么它不再起作用了吗?.env
其次,从我的文件中加载环境变量的可能解决方案(或替代方案)是什么?
php - Symfony 6 使用动态实体填充下拉列表
我有一个 CreditCard 实体,在表单屏幕上有一个包含用户银行实体的下拉列表,我想根据所选银行动态填写 BankAccount 下拉列表,我已经尝试了 SO 的几个解决方案并在我的表单中添加了一个事件侦听器但是当我更改银行下拉菜单我得到“违反完整性约束:kart_adi(实体上的信用卡名称字段)不能为空。我正在使用带有 php 8.1.2 的 Symfony 6
KrediKarti.php:
KrediKartiType.php:
新的.html.twig:
我只是想根据银行找零时选择的银行来获取银行账户。
php - Doctrine Repository 不解析私有属性,而是在 Symfony 6 中返回一个空对象
这可能是一个愚蠢的问题。但是对于许多框架来说,其中一件非常令人沮丧的事情是,当某些东西被期望如此简单和直接以至于甚至没有被提及时,然后当它需要几个小时才能弄清楚时,这是非常令人沮丧的。
我再次学习 Symfony,我有一个用于 Animal 实体的简单 API,并且我在数据库中创建了一些条目。
现在我不想使用迁移,因为我希望能够手动设计模式。我想要的只是让存储库返回所有对象。它做得很好,但不知何故它每次都返回一个空对象。我意识到这是因为这些属性是私有的。现在我创建了自己的方法,它基本上使用 getter 来提供对属性的访问,但这似乎违背了使用 ORM 的全部目的。
我花了两天时间试图找到文档,但找不到任何东西。这让我觉得很明显我必须使用 getter 来获取属性,但这是我希望开箱即用的东西。想
所以我的问题基本上是,这是怎么回事?还是我直接错过了什么?我只问了这个问题,因为我发现一个框架不能开箱即用地提供这个问题让我感到惊讶。
已安装的捆绑包:
这是教义配置文件:
以下是简单 API 的代码:
我很难相信每次我想访问实体道具时都需要创建这个方法?ps 我已将访问修饰符更改为公共,然后它们可以正常工作。
我使用的是 Symfony 6,但 API 不是完整的应用程序。我需要引入任何特殊的捆绑包来实现这一点吗?
结果如下:
编辑1:
我已经从存储库中完成了 dd($this->findAll()) 并且工作正常。见截图:
然后,当我执行 dd(json_encode($this->findAll())) 时,我得到相同的错误,即编码方法无法转换对象。Symfony 文档确实说 json_encode 可以用作 Serialise 组件的替代品?
php - 找不到“GET https://localhost/register”的路由
我一直在关注 Symfony 官方网站上的指南,通过 bundle symfonycasts/verify-email-bundle 以及 make:user 和 make:registration_form 命令设置用户。
一切都很好,显示了 Symfony 默认页面,但是在指南中它在浏览器中显示“转到/注册”,当我这样做时,我得到了
找不到“GET https://localhost/register”的路由
清除缓存并检查路由后,我确实看到路由可用,当我使用“php bin/console router:match /register”发出路由匹配命令时,我得到以下输出:
所以,一切看起来都很好。附加说明...我使用的是 Symfony 6.0,以及带有属性的 PHP8,所以我的路由函数有这个标题:
...但因为我没有得到任何地方,我也在我的 routes.yaml 文件中添加了这个
但是,尝试导航到该页面时仍然出现异常。我尝试在代码中切换到注释头,但仍然是同样的问题。
在我开始深入调试问题之前,我想知道是否有人有类似的问题或知道原因。
非常感谢您的帮助!