问题标签 [symfony-4.2]
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 4 Bundle 的自定义配置 yaml 文件
我正在尝试将捆绑包转换为 symfony 4,并且需要将我古老的 parameters.yml 更新为现代 symfony 4 的生活方式。基本上,捆绑包本身——在多个应用程序之间共享——应该在 /config/packages/ 下有一个可配置文件。
但是我收到此错误:
/PtmrBundle/DependencyInjection/ PtmrExtension.php
/PtmrBundle/DependencyInjection/Configuration.php _
/config/packages/ptmr.yaml _
-- 注意:Bundle 本身可以工作。
我将此行添加到composer.json中的 psr-4 :
这行到 config/routes/ annotations.yml
这些行到 config/ services.yaml
当然还有 PtmrBundle/PtmrBundle.php
我正在按照这些说明进行操作,并且我确实没有看到任何错误。我错过了什么?Symfony 4.2。
symfony - 如何在 symfony 4.2 中使用 JMSSerializer
我正在使用 symfony 4.2 构建 Api,并希望使用 jms-serializer 在安装后以 Json 格式序列化我的数据
作曲家需要 jms/serializer-bundle
当我尝试以这种方式使用它时:
它给了我这个错误:
Service "serializer" not found, the container inside "App\Controller\DemandController" is a smaller service locator that only knows about the "doctrine", "http_kernel", "parameter_bag", "request_stack", "router" and "session" services. Try using dependency injection instead.
php - 使用 symfony4 和教义设置多个数据库时如何修复在两个数据库上运行的迁移
我正在尝试为 symfony 4.2 项目设置第二个数据库。在我运行迁移之前,一切似乎都运行良好,所有迁移都在给定的连接上执行,而不仅仅是它创建的连接的迁移。
按照symfony 自己的文档 ,我的学说.yaml 看起来像这样:
现在有了这个配置,我可以使用 --em=log/default 参数运行迁移命令,如下所示:
你会得到预期的结果:当我添加 --em=log 时,它只会为我在 src/Log 创建的新实体创建一个新的迁移。
这是新实体:
但是,迁移是在默认的 src/Migrations 文件夹中创建的,因此:
1)这个迁移在我运行的时候也执行doctrine:migrations:migrate --em=default
(在默认数据库中创建表)
2)我运行时将整个默认模式加载到日志数据库中doctrine:migrations:migrate --em=log
所以我认为解决方案是将实体管理器之间的迁移文件拆分到不同的目录中。但是我已经花费了几个小时并且找不到为 symfony4 执行此操作的方法。另外,由于 symfony 文档完全没有提到这点,我觉得现在的设置方式可能有问题。
那么谁能告诉我我在这里做错了什么?或者我可以(如果是的话:如何)拆分迁移文件,以便它只执行为给定实体管理器创建的迁移?
php - 发布数据 xml 包含 DOCTYPE 时收到无效的 xml 消息
我有一个将接受 XML 形式的 POST 的 REST 端点。目前,当它尝试解码内容时,它会在 vendor/friendsofsymfony/rest-bundle/EventListener/BodyListener.php(第 115 行)中抛出“收到的无效 xml 消息”。
这是前三行代码。请注意 XML 本身会验证。
我能说的最好的部分是:
如果我从我的测试帖子中删除这一行,请求就会通过。
如果没有这个字符串,我将无法接收 XML,那么是否有配置或其他东西会告诉解码器忽略它?是否有其他配置告诉它使用 .dtd 来验证 XML?
知道我错过了什么.. 不确定从哪里开始寻找。
添加控制器代码。
php - 在 CollectionType 中自动设置数据库 ID
我有两个实体,ParkingType 和 Exception,它们之间存在 OneToMany 关系,因为每个 ParkingType 都可以有多个异常。
我这样做了,所以每当我创建一个新的 ParkingType 时,我也可以同时创建与之相关的异常。我通过在parkingtype 表单中使用包含异常表单的CollectionType 来做到这一点。集合类型是动态的,因此我可以添加任意数量的异常。
问题:异常表有一个名为 type_id 的列,用于将该异常与 ParkingType 相关联,我每次都必须通过从下拉列表中选择来自己填充该字段。我不想这样做,我希望该字段默认引用我刚刚创建的对象。我的代码:异常实体:
ParkingType 实体:
停车类型表格:
例外形式:
symfony - Symfony 4 从 api 登录生成 Api 令牌|使用电子邮件和密码注册
我正在使用 Symfony 4“带有 Guard 的自定义身份验证系统(API 令牌示例)”带有 Guard 的自定义身份验证系统(API 令牌示例)
我想在用户从其他应用程序(即 Advance Rest 客户端)注册时生成 api 令牌,然后想使用此令牌访问其他 api,例如获取文章列表。
没有生成令牌的选项,或者我可能找不到。
这是我的代码:
配置/包/security.yaml
控制器/RegistrationController.php
}
安全/TokenAuthenticator.php
下一个问题是如何从文章 api 中的令牌中获取用户详细信息?
php - 为什么当我发出 SQL 请求但没有保存在数据库中时,表单提交后我的数据发生了变化?
当我提交我的表单并且我在数据库中获得了团队时(之前没有 INSERT / 没有 UPDATE),当我已经在数据库中拥有旧成员的 ID 时,Doctrine 返回新成员的 ID(我在表单中被选中)。
如何解决问题?
感谢。
symfony4 - Symfony4.2 Autowire 捆绑服务
我想在自己的服务中自动装配捆绑服务接口,但出现错误:
我的代码是:
如果我只注入实体管理器或我定义的服务,一切正常,但无论我尝试注入什么捆绑服务(guzzle、browserkit、jms 序列化程序等),它都不起作用。
我为 Web 项目定义了默认的 symfony services.yaml 文件:
我正在使用 Symfony4.2。
这个问题的解决方案是什么?