问题标签 [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 投票
0 回答
119 浏览

php - Symfony4.3未捕获错误:路由“xxxx”不存在

我在 symfony 4.3 中遇到 fosJsRouteBundle 的问题我在控制台中有错误Uncaught Error: The route "xxx" does not exist.

路由器控制器

php bin/console fos:js-routing:debug

我在这里搜索解决方案,但我没有找到伟大的 id,我认为问题出在这个https://symfony.com/blog/new-in-symfony-4-1-internationalized-routing

0 投票
1 回答
49 浏览

php - 如何在配置特定包中的包中获取配置参数

我已经创建了我的包,所以我想获得一些配置值

我想form_template参加我的服务或上课

0 投票
2 回答
2307 浏览

php - 如何使用 Symfony Webpack Encore 让 jQuery 在外部工作?

我正在法国网站 GraphikArt 上关注如何使用 Symfony 创建网站(所以我是新手)的教程。我目前在“Symfony Encore”部分,当我必须在我的 JS 文件中需要 jQuery 而它在我的 Twig 文件上时,我无法让它工作。

我正在使用 Symfony 4.3.3 和 Yarn 1.17.3。正如那个人所展示的那样,我试图让它在我的末尾与那部分一起在外部工作webpack.config.js

我还尝试了一些可在此站点上找到的解决方案,但似乎没有任何效果。

我当前的文件:

webpack.config.js

app.js

base.html.twigJavaScript 部分

如教程所示,我想在文件app.js中链接时使用 jQuery。base.html.twig

我的问题是,当我保存任何更改时app.js,我会收到:

本教程(以及在线解决方案)怎么可能适用于其他人但不适用于我?

解决方案

webpack.config.js文件中,而不是:

在行之前.autoProvidejQuery(),写:

此外,问题是我没有使用正确的命令行。使用yarn encore dev.

0 投票
1 回答
152 浏览

symfony - 公共服务作为私人服务处理

我有一个由两个 Symfony 应用程序使用的库,这个库定义了一组我想要公开的服务(我希望能够直接通过容器检索它们。当我尝试访问一个服务时,我有这个:

编译容器时,“Library\Service\DerivedServices\OneSpecificImplementation”服务或别名已被删除或内联。您应该将其公开,或者直接停止使用容器并改用依赖注入。

问题是所述服务宣布为公开的。

基本上有:

  • 一个Library\Service\BaseService类,它有两个用于公共依赖项的设置器(此代码段中的教义和一个记录器);
  • 几个派生类(在Library\Service\DerivedServices命名空间中),每个都定义了一个新服务(用自己的构造函数直接处理 DI)。

所以这是我的服务定义:

然后,Symfony 应用程序检索一个派生服务,例如:

这些没有任何区别:

  • 我更改了服务定义的顺序
  • 两个应用程序都运行 Symfony 4.3.3

我认为这在配置方面是微不足道的,但我无法确定它(在尝试调试为什么框架将我的服务编译为私有的 2 小时后,我认为有人可能有这个并且可能会帮助我)。

0 投票
0 回答
108 浏览

forms - Symfony4.3 EntityType 中查询生成器提供的排序首选选项

我有一系列由查询生成器提供的事件。所有实体都必须显示在选择字段中,使用未来事件作为首选。两个部分都应按日期(升序)排序。到目前为止,它通过以下方式运行良好:

由于对 Symfony 4.3 的更新,不再保留首选选项的排序顺序,如下所述: https ://github.com/symfony/symfony/pull/30985 我没有首选选项数组,因为我使用一个可调用来决定将来发生哪个事件。我现在如何对首选选项进行排序?我在不断变化的描述中找不到任何线索。除了在表单构建器之外创建一系列事件之外,真的没有其他方法了吗?

0 投票
2 回答
1815 浏览

symfony - getUser() 方法在控制器构造函数中不起作用

我想在 Symfony 4.3.2 项目的控制器构造器中获取用户对象。根据https://symfony.com/doc/4.0/security.html#retrieving-the-user-object上的文档,我只需要调用 $this->getUser()。是的,这适用于行动方法。

但是:尝试在构造函数中获取用户不起作用,因为容器不会在此处初始化,并且 getUser 方法会引发异常“调用成员函数 has() on null”:此时容器为 null及时。

这有效:

这不会:

当我手动注入容器时,一切都很好:

顺便说一句,这是 AbstractController 中的 getUser 方法:

这是一个错误,容器未在构造函数中初始化,还是一个特性,当您需要构造函数中的用户时,您必须手动初始化它?

编辑:使用https://symfony.com/blog/new-in-symfony-3-2-user-value-resolver-for-controllers中显示的方式在动作中起作用,但在构造函数中不起作用:

产生以下错误消息:Cannot autowire service "App\Controller\TestController": argument "$user" of method "__construct()" references interface "Symfony\Component\Security\Core\User\UserInterface" but no such service exists. Did you create a class that implements this interface?。这就是我想设置用户对象的地方。

0 投票
1 回答
123 浏览

symfony-4.3 - Symfony 4.3 如果克隆为 git 子模块,如何启用 Bundle

我想在 symfony 包上开发。所以我将它作为 git submodule add 克隆到我的项目中。

但是我必须如何在我的 Symfony 项目中启用这个包,因为它不在供应商中,它直接在我的项目下。

所以我猜在 config/bundle.yaml 中启用它的方法不正确?例如Bundle\Bundle::class => ['all' => true],

因为我在 bin/console 缓存上收到错误:清除

0 投票
2 回答
73 浏览

php - 当方法需要参数时,如何在 Symfony 4.3.x 中正确自动连接接口?

我正在尝试构建一个 Symfony 4.3.3 命令,我想在其中添加随时覆盖回调函数的能力。看下面的代码片段:

我想转换这个:

进入这个(如果可能的话,这不是一件疯狂的事情或不可能实现):

我的想法(我可能完全错误)是创建一个允许随时覆盖方法的接口。下面是它的代码片段:

从那里我应该能够在命令中注入接口,例如:

您可能会注意到该函数request()接收两个参数。出于这样的原因,一旦我从命令中调用该方法,因为$server->on('request', $this->callback->request($request, $response));它试图访问这两个参数。

我已阅读 Symfony Docs for How to Autowire Interfaces,但我仍然不清楚如何正确设置该方法工作所需的参数。

如果我在这里正确理解文档:

他们已经覆盖了 at 的方法,App\Util\Rot13Transformer应该没有任何问题。但是,该示例未显示来自被调用transform接口的方法。TransformerInterface

不确定我的场景中正确的自动装配是否是:

我可以在这里得到一些关于如何实现这一目标的想法吗?以及它是如何工作的一些解释?我可能弄错了:|

注意:如果有什么不清楚或令人困惑,请问我

0 投票
0 回答
63 浏览

php - Symfony 4:验证器正在刷新而不是显示消息

我在这里有一个 symfony 添加表单,在“客户端”部分有 2 种可能性(客户端已经存在,并且它是从 db 中选择的,或者它不存在并且您必须完成作为 CollectionFormType 导入的其他字段)。当您创建一个新客户时,他的电话号码必须是唯一的,所以我尝试添加一个自定义约束“checkUnique”来检查重复项和格式。

问题是,当满足来自 newClient 字段(电话)的约束条件时,页面正在刷新获取违规“电话已存在” 而不是显示这样的消息。如何在不刷新的情况下阻止页面提交并显示更改电话号码的消息?


我使用的 CollectionFormType“NewClientType”:


包含 CollectionFormType "NewClientType" 的 FormType:

(我正在使用 Prototype 来呈现此表单)。

0 投票
1 回答
104 浏览

php - 生产环境连接数据库出错

启动我的网络应用程序时,我收到 500 错误。prod.log 显示与数据库的连接错误,并且在其下方有一个缓存。警告:无法在 /var/www/project/var/cache 文件夹中保存密钥。(不确定它们是否相关。)

错误说 getaddrinfo failed: Temporary failure in name resolution at /var/www/etc.

我尝试将 db 连接字符串的配置从 localhost 更改为 127.0.0.1 到实际的 IP 地址,但没有发现差异。

.env DATABASE_URL=mysql://username:password@127.0.0.1:3306/atlas

我希望配置能够正确识别本地主机或本地 IP 地址并连接到数据库。