问题标签 [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.
symfony - 带有翻译的 Symfony 4,没有到/没有 _locale 的路由
我创建了一个带有英语和法语翻译的 Symfony 4.4.8 项目,所以我按照以下步骤操作:
https ://symfony.com/doc/current/translation.html
并设置:
配置/包/translation.yaml
配置/路由/annotations.yaml
和一个src /Controller/HomeController.php
我在翻译文件夹中有翻译文件,当我运行localhost:8000/fr或localhost:8000/en时,它工作正常,显示了我的home/index.html.twig。
问题是当我运行localhost:8000/时,它向我显示了默认的Welcome to Symfony页面,并显示“你正在看到这个页面,因为你没有配置任何主页 URL。”
这个 sf2 的解决方案是否适用于 sf4?
有人知道如何解决吗?
我还测试了将 HomeController 中的路由更改为:
@Route("/{_locale}", name="home", defaults={"_locale"="fr"}
但它返回异常:
Route pattern "/{_locale}/{_locale}" cannot reference variable name "_locale" more than once.
php - 如何将数组传递到教义原始查询中的 IN 语句中?
我有一个数组numbers
。
当我将数组直接传递给查询时,它会返回“注意:数组到字符串的转换”。
所以我将数组内爆成字符串;
当我通过$str
时,它返回空记录。它不应该返回空。
任何人都可以帮助我在这里做错了什么。
谢谢你。
doctrine - 我可以直接在我的 Doctrine 结果中获得一个嵌套列表吗?
抱歉,如果问题措辞不当,我想不出一个好的方法来描述我的问题。
所以基本上,我正在使用 Doctrine 查询构建器来尝试从我的Session
实体中获取培训课程列表。对于每个session
,我需要获取名称和日期等基本属性,但我还需要获取participants
. Session
实体和之间存在一对多的关系,因为给定的Participant
可能有多个。我只需要一个列表,嵌套在列表的每个项目中。像这样的东西:participants
session
participants
sessions
在我看来,这应该是非常基本的,但是对于我的生活,我无法让它与JOIN
s、子查询等一起使用。我得到的最接近的是这个错误,这确实意味着我正在尝试获取一个嵌套数组(但它不会让我):
运行此代码时出现此错误:
我知道我可以获取我的sessions
,然后遍历它们并使用另一个 DQL 查询获取他们的参与者,但显然这似乎不是正确的方法。有没有更好的办法?
caching - 如何在 Symfony 4.4 中为学说设置默认缓存生命周期?
我想在我的不同环境中为学说缓存设置默认缓存寿命/超时。
仅显示在实体管理器区域的高级配置中将生命周期设置得非常深入的选项,我不想在这里乱搞。我不敢相信没有地方可以为数据库结果缓存设置通用值。
真的没有选项可以在配置文件中设置缓存的默认超时吗?
当前配置/测试/doctrine.yaml:
symfony - 无法与主机“ssl://null:465”建立连接:stream_socket_client():php_network_getaddresses:getaddrinfo 失败
如果我在本地主机上的 symfony4.4 中使用带有 mailtrap 的symfony/mailer,它可以工作。没有错误
但是如果我在服务器https://my.ionos.fr上尝试,它会显示如下错误:
无法与主机“ssl://null:465”建立连接:stream_socket_client():php_network_getaddresses:getaddrinfo 失败:/vendor/symfony/mailer/Transport/Smtp/Stream/SocketStream.php:138 中的名称或服务未知)"} []
谁能帮帮我吗?我在.env中尝试过,但没有人在工作。
#MAILER_DSN=smtp://xxx:xxx@smtp.ionos.fr:465?encryption=ssl&auth_mode=login
#MAILER_DSN=sendgrid://KEY@default
symfony - 将交换绑定到 Symfony Messenger 组件中的交换
是否可以在 Symfony Messenger 组件中定义交换之间的绑定?(此处为 4.4 版本)。
我知道有可能像这里一样绑定到队列交换:
然后应用程序设置它们之间的交换、队列和绑定。我希望基于路由键将交换绑定到另一个交换具有相同的效果。
我知道我可以使用rabbitmq-bundle,但IMO 是多余的——我想保留一个组件来管理rabbitMQ。
例如,我想根据某些路由键将交换绑定other_app
到交换。my_app.incoming
php - Symfony 4.4.15 依赖注入弃用
我正在将我的 Symfony 实例更新到 4.4.15,我遇到了一个我无法理解的弃用。它在说:
我在网上查看过,找不到任何有助于理解问题或解决问题的方法。
任何帮助理解它以及如何纠正这种弃用将不胜感激。
php - 将 TINYINT 添加到 Doctrine SQL 类型
在 Symfony 文档之后,我尝试添加TINYINT
为实体列类型。
到目前为止它运行良好,但仍然存在两个问题......
每次我想执行迁移时,Doctrine 都无法
TINYINT
重新调整关联的列,并再次执行迁移查询。在表单构建器中,默认情况下
TINYINT
被重新调整为TextType
而不是NumberType
你知道我在解决这两个问题时缺少什么吗?
TinyintType.php
doctrine.yaml
symfony - Symfony 4.4 metadata_cache_driver 配置键弃用通知
自从我将 Symfony 从 4.4.15 升级到 4.4.16 后,我收到了以下弃用通知:
“metadata_cache_driver”配置键已弃用。现在,当 %kernel.debug% 为 false 时,会自动注册 PHP 数组缓存。
这很奇怪,因为官方文档除了以下文字外没有提及此弃用:
自 4.4 版起已弃用:所有 Doctrine 缓存类型自 Symfony 4.4 起已弃用,并且在 Symfony 5.0 及更高版本中不可用。将它们替换为 type: service 或 type: pool 并使用任何使用 Symfony Cache 定义的缓存池/服务。
但我使用的是缓存类型池或服务。我的配置如下所示:
我什至尝试将缓存配置为这样的服务,这给了我同样的弃用通知:
任何想法如何摆脱弃用通知?
php - 只有“/”适用于 symfony 4.4 应用程序
当我使用 php bin/console server:run 运行我的 symfony 4.4 应用程序时,每条路由都运行良好。当我在 Ubuntu 服务器中使用 apache 2 时出现问题,只有“/”路由有效,其他路由返回 404 not found 我安装了 apache 包
仍然没有进展,我没有解决方案,我正在寻求您的帮助社区。
这是我的 apache.conf 文件
PS:在同一台服务器上,我有其他使用 Symfony 3.4 的项目,它们没有问题
谢谢