从数据数组填充实体,无需表单/请求

2024-04-03

只是想知道是否可以只使用 symfony 表单处理的某些部分。例如,当通过创建 CRUD 操作时generate:doctrine:crud我在控制器(用于处理创建用户 POST 请求)中得到如下所示的内容:

$entity = new User();
$form = $this->createForm(new UserType(), $entity,
        array(
        'action' => $this->generateUrl('user_create'),
        'method' => 'POST',
));
$form->handleRequest($request);
//Here I have a filled Entity

但我想要的是把它放在一个更可重用的解决方案中。目前我的业务逻辑在一个名为的服务中UserModel。在这里我也想要create创建、验证和持久化新实体的方法。坚韧的UserModel还应该可以通过控制台从某些命令脚本调用,所以我可能不会总是有Request nor a Form.

所以现在从上面的代码我知道 Symfony 已经以某种方式根据以下方式将数据填充到实体中:UserType定义,但是我如何在没有Form or a Request而只是一些数据数组?
这样我就不必自己设置属性了。

Edit:验证对于填充实体来说没有问题,我正在使用validator稍后在持久化数据之前填充实体。
对我来说同样重要的是通过related entity ids将自动处理/加载。


您仍然可以使用 Form 组件,但不要使用handleRequest,你应该直接使用submit.

如果你好奇,你应该在 github 上查找这两个代码handleRequest https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Form/Form.php#L486-L491 and 它实际上做了什么 https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Form/NativeRequestHandler.php#L39;你会看到它只是做了一些验证,从Request, and 然后使用submit method https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Form/NativeRequestHandler.php#L94表格的。

所以,基本上,您只能使用submit方法与您想要使用的数据。它甚至可以验证您的实体。 :)

UPDATE

对于创建/更新相关实体的关注,如果您的关系具有持久/更新级联,则它应该从自身推出,而无需您做任何事情,除了主实体上的持久+刷新之外。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从数据数组填充实体,无需表单/请求 的相关文章

  • PHP - 将数据从一个站点安全地传递到另一个站点

    我有一个可以接受来自多个站点的请求的站点 有点像升级检查 这些网站将发送用户名 密码 应用程序版本等信息 然后我的网站将根据这些信息发送响应 基本上这是一个 GET请求 例如 http www mysite com user boo pas
  • PHP 添加 1 个月至今

    我有一个返回 1 个月前的 url 的函数 我想显示当前选定的月份 但我不能使用简单的当前月份 因为当用户单击 1 个月前的链接时 选定的月份将发生变化并且不是当前月份 因此 函数返回 August 2012 如何制作可以增加 1 个月时间
  • 表单提交到白页?

    所以我有一个用于我的注册系统的表格 当表单提交并出现错误时 例如 首先输入用户名 或 您必须提供密码 它会成功刷新页面并显示这些错误 但是 当表单提交并且用户填写了所有数据并且没有错误时 表单将转到白色页面 我查看了源代码 所有显示的都是页
  • 选择 mysql 枚举的 php 函数

    因此 我创建了一个函数 它将从数据库中的枚举字段中提取值
  • PHP 内部:TSRMLS_FETCH 如何工作?

    PHP 内部结构是怎样的TSRMLS FETCH宏发挥作用吗 Per the PHP手册 http php net manual en internals2 memory tsrm php 在开发扩展时 包含 tsrm ls is unde
  • 为什么 crontab 不执行我的 PHP 脚本?

    我已经构建了一个 php 文件来检查一些结果 因此我需要设置一个 cronjob 我设置每 30 分钟运行一次 以便发送结果 但是 我不知道为什么我的 crontab 没有每 30 分钟运行一次 这是我设置 crontab 的方法 30 p
  • count() 参数必须是一个数组或一个在 Laravel 中实现 countable 的对象

    这是这里的代码 protected function credentials Request request admin admin where email request gt email gt first if count admin
  • 如何在加载ajax内容和javascript时加载gif图像[重复]

    这个问题在这里已经有答案了 我一直在尝试加载 gif 图像 直到 ajax 加载数据并显示它 但我对此感到安慰 我希望你能帮助我 这是我的高级搜索代码 现在我想为此添加加载 gif ajax type POST url base rul s
  • 使用 PHP 显示 Mysql 中的图像

    这就是我的数据库中的表的样子 我正在尝试显示我存储的图像 它是 mimetype longblob 当我运行代码时 它会给我一个带有 的小框 没有错误 只是那个框 有谁知道错误是什么以及如何修复它 Display Index Display
  • 单击时获取元素的 id(php、jquery、ajax、javascript)

    抱歉 这是我的第一个项目 我学到了很多东西 因此 如果有人可以帮助我 我将不胜感激 我的项目中有这个侧边栏 其中包含 rss 链接 我必须使用 ajax 因此每次用户单击任何 rss 链接时 提要都会出现在屏幕上 这是我的侧边栏代码 div
  • Node + now.js + 模型-视图-控制-模式

    我正在使用基于 MVC 模式 模板和 PHP 类 的论坛软件 页面如下所示 domain com index php page Test 我想使用 Node 和 now js 在一个页面 domain com index php page
  • 更改 Symfony2 中的默认语言环境

    我正在尝试更改应用程序的默认区域设置 到目前为止我尝试过的事情 将 intl default locale 设置为 et EE 将区域设置设置为 et app config parameters ini 更改了我的捆绑包 boot 方法中描
  • PHP json_encode 反斜杠和数组名称的问题

    我正在将一些 postgresql 数据转换为 PHP json encode 但我遇到了一些问题 json encode 将 BackSlash 添加到我的数据中的所有斜杠中 在描述中出现段落标记的结束 我认为是因为反斜杠问题 我不希望我
  • 如何使用 Magento 测试 cron?

    首先我需要了解 Magento cron 是如何工作的 我知道 cron 在 Linux 上如何工作 使用crontab e 我知道我需要设置 Magento 的 cron php 定期运行 但是当我在 magento 配置文件中定义 cr
  • 在php word中将两个徽标对齐在同一行

    我使用 php word 添加了两个徽标 但两个徽标不在同一行 我希望两个徽标位于同一行 如下所示 我的错误在哪里 if file exists logo table gt addRow table gt addCell 20000 arr
  • PHP Imagick - setTextEncoding() 函数不起作用

    我正在尝试在 Imagick 对象上添加一些文本 但是我使用 setTextEncoding 函数 它仍然不起作用 draw new ImagickDraw draw gt setTextEncoding utf 8 draw gt set
  • 使用 google 检查 url,安全 = 活动

    如何检查 url 是否被 google 显示 Example https www google com search q redtubex xxx safe active Code input http www example com in
  • 未找到“Twilio\Rest\Client”类

    我正在尝试使用 twilio php api 这是我的代码
  • 根据产品类别自定义购物车总计和结帐总计文本

    我想根据产品类别 或其他一些逻辑 自定义购物车和结帐订单汇总表中的文本 例如 对于 总计 文本 参见图片 如果购物车包含名为 杂货 的类别中的产品 那么我希望订单摘要中的文本显示为 总计估计 文本 参见图片以下 如果购物车不包含任何杂货 那
  • 实现 PHP 单例:静态类属性还是静态方法变量?

    所以 我总是像这样实现一个单例 class Singleton private static instance null public static function getInstance if self instance null se

随机推荐

  • 开源 BPM 工具(如 Activiti、bonita)和 Windows Workflow Foundation 之间有什么区别

    我试图找到一个基于asp net的免费开源BPM工具 但不幸的是我没有找到这样的工具 但最近我读到一篇关于Windows Workflow Foundation的文章 那么它是否提供了类似于开源BPM工具如Activiti bonita J
  • 为什么在 WPF 中将 INotifyPropertyChanged 与绑定一起使用?

    我注意到 几乎我在互联网上找到的有关绑定的每个示例都有一个类 绑定到另一个属性 该类继承 INotifyPropertyChanged 接口并在该类属性的 set 部分中使用一个方法 我尝试从绑定示例中删除该部分 其工作原理与该方法相同 这
  • 正则表达式:以不同顺序匹配组而不重复组

    假设我有两个这样的字符串 XABY XBAY 匹配两者的简单正则表达式如下所示 X AB BA Y 但是 我遇到的情况是 A 和 B 是复杂的字符串 我正在寻找一种方法来避免必须将它们分别指定两次 在 的每一侧 有没有办法做到这一点 这可能
  • Laravel Sanctum 自定义守卫

    我的 laravel 应用程序中有多个守卫 Code config auth php defaults gt guard gt user passwords gt users guards gt user gt driver gt toke
  • 目标文件和静态库(归档文件)有什么区别?

    似乎归档文件可以从目标文件生成 ar rvs libprofile a profile o 目标文件和归档文件有什么区别 在我看来 两者都可以直接与 gcc 一起使用 例如 gcc c profile o or gcc c libprofi
  • 为什么我的闹钟马上就响了? (安卓)

    尝试为一周中的某些天设置闹钟 但目前很困惑为什么这个闹钟会立即被触发 无论我以小时和分钟的形式传递什么 我知道一周中的某一天是错误的 只是还没到那一步 public void setReminder int hr int min int d
  • controller.js.coffee 中的函数

    我在使用 CoffeeScript 创建函数时遇到一些问题 我想我错过了一些东西 对于我的用户控制器 我想为注册表单创建客户端验证 我认为我错过了这一切如何运作的一些基本内容 咖啡脚本 资产 users js coffee validate
  • 使 Elixir 应用程序在源代码更改时重新编译并重新加载

    如何在每次修改源代码时自动重新编译并重新加载我的 iex mix 应用程序 如果 iex mix 组合无法做到这一点 那么最简单的替代方案是什么 我已经检查了phoenix的重新加载方法 对于我的小型测试项目来说 它似乎并不容易实现 我也知
  • Excel 在复制时弄乱了我的公式,我怎样才能阻止它更改一部分而不更改另一部分?

    所以我正在使用一个正在更新的旧数据库系统 以前它运行过许多不同的文件 一个包含电子邮件 一个包含数字 你明白了 不管怎样 在尝试编译成一个文件时 我遇到了一个障碍 有些人没有电话号码或电子邮件等 这意味着我不能只是复制旧数据 PersonI
  • 在循环中创建多维数组

    我正在尝试在循环中创建这样的数组 dataPoints array array x gt 4321 y gt 2364 array x gt 3452 y gt 4566 array x gt 1245 y gt 3452 array x
  • 图像地图的绘图点

    我想向网页上的图像地图添加自动区域突出显示 我发现 mapper js 库对于实现此目标非常有用 但是围绕区域地图创建 x y 图非常耗时 有没有一种快速的方法来创建不规则多边形的边界坐标 例如可以在区域地图上找到的坐标 EDIT必须有办法
  • 无法获取socket.io.js

    我实际上正在做一个小项目 我应该用node js mongoDB socket io 和canvas 重新创建一个绘图多人游戏 抽屉工作得很好 服务器似乎也工作得很好 我的注册 登录 会话和数据库已启动并正常工作 唯一的问题是 socket
  • API 的错误代码模式

    API错误代码响应模式有哪些好的选择 而不是使用不同的代码来指示不同类型的错误 100001 username not provided 100002 password not provided 100003 password too sh
  • 包装| OpenSCManager 失败 - 访问被拒绝。 (0x5)

    我尝试在 Windows 8 1 pro 64 位 上安装 Archiva 但不断收到如下相同的错误 包装 OpenSCManager 失败 访问被拒绝 0x5 我仅以管理员身份登录 但我仍然遇到同样的错误 对于同一问题 我看到的大多数答案
  • ASP.NET MVC 强类型部分视图,给出无法加载类型错误

    我正在尝试使用使用 Html RenderPartial 呈现的 MVC 视图用户控件 创建强类型视图 我的 ascx 文件的顶部如下所示 目前此页面上没有其他内容 当我执行应用程序并加载呈现此控件的页面时 出现以下错误 Could not
  • Java 中的异常。我们为什么要拥有多个可检查类和一个不可检查类呢?

    我是 Java 编程的新手 我刚刚开始学习异常 在 API 文档中发现 Exception 类的所有子类都有两个构造函数 一个默认构造函数 另一个带有 String 参数 所有这些类之间的区别在于其中一些是可检查的而另一些是不可检查的 Un
  • 复制每日期间的最后一个值

    我有一个多日 XTS 对象 并且我正在尝试创建一个指标 该指标一旦为真 则在当天剩余时间内保持为真 我正在尝试的方法 但它不起作用 是将 na locf 函数与 apply daily 结合起来 output lt apply daily
  • 如何向新程序员解释松散耦合和信息隐藏? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • IOS7(仅限)stdlibc++ 链接问题

    我需要帮助 我有一个使用 std string 之类的 stdc 的框架 现在 当我为 IOS 7 创建新应用程序时 由于 stdc lib 的问题 链接此框架时出现问题 架构armv7的未定义符号 std basic string std
  • 从数据数组填充实体,无需表单/请求

    只是想知道是否可以只使用 symfony 表单处理的某些部分 例如 当通过创建 CRUD 操作时generate doctrine crud我在控制器 用于处理创建用户 POST 请求 中得到如下所示的内容 entity new User