Symfony2:如何在FormType中调用实体的存储库

2024-04-23

我尝试调用我的实体的存储库Category以我的实体的类形​​式BonCommande,但是出现了这个错误:

注意:未定义的属性:C:\wamp\www\Symfony_test\src\Application\VehiculeBundle\Form\BonCommandeType.php第74行中的Application\VehiculeBundle\Form\BonCommandeType::$em

这是我的代码:

班上BonCommandeType.php:

namespace Application\VehiculeBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Form\FormInterface;
use Application\VehiculeBundle\Entity\Category;

class BonCommandeType extends AbstractType
{
        /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
       public function buildForm(FormBuilderInterface $builder, array $options)
    {
        // Name of the user
        $builder->add('observation', 'text');


    /* Add additional fields... */

    $builder->add('save', 'submit');

    // Add listeners
    $builder->addEventListener(FormEvents::PRE_SET_DATA, array($this, 'onPreSetData'));
    $builder->addEventListener(FormEvents::PRE_SUBMIT, array($this, 'onPreSubmit'));
}


protected function addElements(FormInterface $form, Category $categorie = null) {
    // Remove the submit button, we will place this at the end of the form later
    $submit = $form->get('save');
    $form->remove('save');


    // Add the province element
    $form->add('categorie', 'entity', array(
        'data' => $categorie,
        'empty_value' => '-- Choose --',
        'class' => 'ApplicationVehiculeBundle:Category',
        'property' => 'intitule',
        'mapped' => false)
    );

    // Cities are empty, unless we actually supplied a province
    $vehicules = array();
    if ($categorie) {
        // Fetch the cities from specified province
        $repo = $this->em->getRepository('ApplicationVehiculeBundle:Vehicule');
        $cities = $repo->findByCategory($categorie);
    }

    // Add the city element
    $form->add('vehicule', 'entity', array(
        'empty_value' => '-- Select a categorie first --',
        'class' => 'ApplicationVehiculeBundle:Vehicule',
        'choices' => $vehicules,
    ));

    // Add submit button again, this time, it's back at the end of the form
    $form->add($submit);
}


function onPreSubmit(FormEvent $event) {
    $form = $event->getForm();
    $data = $event->getData();

    // Note that the data is not yet hydrated into the entity.
    $categorie = $this->em->getRepository('ApplicationVehiculeBundle:Category')->find($data['categorie']);
    $this->addElements($form, $categorie);
}


function onPreSetData(FormEvent $event) {
    $account = $event->getData();
    $form = $event->getForm();

    // We might have an empty account (when we insert a new account, for instance)
    $categorie = $account->getVehicule() ? $account->getVehicule()->getCategorie() : null;
    $this->addElements($form, $categorie);
}
...
}

这是导致错误的指令:

$categorie = $this->em->getRepository('ApplicationVehiculeBundle:Category')->find($data['categorie']);

FormComponent是一个独立的组件,它不提供任何entityManager可供使用。你必须注入它或传递它$options如果你想使用它..

在你的情况下,如果你直接将它传递给类型是正确的__construct或路过$options数组或将您的类型声明为服务并向其注入实体管理器:

class BonCommandeType extends AbstractType
{
    private $em;

    public function __construct(EntityManagerInterface $em)
    {
        $this->em = $em;
    }

    ...
}

or

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

Symfony2:如何在FormType中调用实体的存储库 的相关文章

  • git 项目与存储库,根本区别是什么?

    我有两个项目当前使用 SVN 我正在迁移到 git 我注册了 gitorious 并且可以选择创建新项目或添加存储库 我刚刚开始使用 git 所以我不知道有什么区别 或者更确切地说 如果我只是在一个项目下使用存储库 这意味着什么 如果我这样
  • 使用 ViewModel 设计 MVC 存储库

    我想创建一个存储库类来将我的数据逻辑与控制器分开 我使用 ViewModel 来表示一些数据 这些数据将填充来自不同表的数据 我有一些问题 对于像这样的方法GetAll 我要返回一个IQueryable
  • Symfony 4 和 Doctrine 2 从集合中删除(第一个)项目后序列化导致转换为 JSON 对象而不是数组

    我在序列化已删除第一个元素的集合时遇到很多麻烦 我有 CompaniesCollection 实体 与 Company 实体有 Many2Many 关系 ORM ManyToMany targetEntity App Entity Comp
  • Symfony 服务器在扩展 FOSUserBundle 的默认模板layout.html.twig 时崩溃

    我正在尝试从 FOSUserBundle 运行基本用户登录 我正在使用 Symfony 3 0 6 我按照说明设置了 FOSUserBundle 中的所有内容 https symfony com doc master bundles FOS
  • 如何使无线电输入成为必需?

    我在表单中提供了无线电输入 供用户选择性别 如何使性别成为必需的输入 用户必须选择女性或男性 否则他们会按照通常的方式得到提示required 我尝试添加required如下所示 但它不起作用 用户可以继续而不选择女性或男性 div cla
  • 存储库和数据映射器模式

    在大量阅读有关存储库和数据映射器的内容后 我决定在测试项目中实现这些模式 由于我对这些不熟悉 我想了解您对我如何在一个简单的项目中实现这些的看法 杰里米 米勒 说 做一些不平凡的个人编码项目 您可以在其中自由地尝试设计模式 但我不知道我做的
  • 处理表单的最佳实践

    我想知道处理表单处理的最佳实践是什么 就我而言 我做了类似的事情 if the user hasn t submited the form 显示表格 else if there are form errors 显示错误 再次显示表格 els
  • Github 下载文件夹为 zip

    如何为我的 Github 存储库的访问者提供一个链接 以将我的存储库的 builds 文件夹下载为 zip 文件 该文件夹包含应用程序所需的可执行文件 着色器和纹理 当然 我可以手动构建该目录的 zip 文件并将其添加到存储库中 但这会导致
  • 生产中未找到 symfony 2 路线

    我有这样的路线 login register 等 在开发环境中工作正常 起初 当我尝试通过 app php 而不是 app dev php 访问我的网站时 出现 404 错误 然后我跟着这个建议 https stackoverflow co
  • Symfony2 - 扩展 RememberMe 成功处理程序

    我想在某人刚刚使用 Symfony2 中的 记住我 功能登录后执行一个小的 PHP 操作 我已经看到了这一点 但不知道如何扩展它 http api symfony com 2 3 Symfony Component Security Htt
  • 有没有办法从 Symfony 应用程序中的 url 中删除 '/web' 而不将 'web' 目录的内容移动到根目录?

    我在使用 Symfony 创建应用程序时遇到一个问题 即 url 中出现 web 我找到了一种方法来摆脱这个问题 将 web 目录的内容移动到根目录 但我认为这不是一个好的开发实践 必须有其他方法 谁能告诉我是否还有其他方法可以做到这一点
  • Symfony 从控制器设置块内容

    有没有办法在 Symfony 的控制器中设置模板块内容 有没有办法在控制器中执行类似的操作 this gt get templating gt setBlockContent page title page title 我需要动态设置页面标
  • JavaScript:无需服务器即可将 HTML 表单和复选框数据保存到 .txt 文件吗?

    我有一个带有文本和复选框输入的 HTML 表单 我想在提交表单时将此表单数据下载到文本文件中 I 找到了从文本框下载数据的解决方案 https stackoverflow com questions 13685263 can i save
  • 将 javascript 变量作为 onsubmit href 链接传递到表单/输入字段

    id 喜欢有一个输入框 用户可以在其中输入搜索词 该搜索词可能会传递给一个 javascript 函数 然后该函数将一些 url 段与搜索词组合起来 创建一个完整的 url 到目前为止 它在没有表单的情况下工作正常 但我想向其中添加一个表单
  • 如何使用 Jquery 设置输入字段的 Name 属性?

    快速提问 我想知道如何才能实现这一点 好的 我有一个像这样的输入字段
  • 连接两个 Git 存储库的历史记录?

    我有一个旧的 Git 存储库 请调用它app 然后 一年后 我想从头开始重建应用程序 所以我创建了一个新的存储库 称之为app 2 现在 我意识到我应该创建一个新分支或其他东西 而不是一个新的存储库 因为我想移动app 2在之上app然后摆
  • Select2 基本示例不起作用

    我想得到select2使用 symfony2 脚本的库 我正在尝试实现提供的基本示例https select2 github io examples html https select2 github io examples html pa
  • 使用rvest或httr登录网页上的非标准表单

    我正在尝试使用 rvest 来抓取需要在表单上输入电子邮件 密码登录的网页 rm list ls library rvest Trying to sign into a form using email password url lt ht
  • symfony2以管理员用户身份访问私有文件

    在我的 Symfony2 3 项目中 我有一个前端网站和一个后端 后端通过 security yml 文件进行安全保护 只有 role admin 用户可以访问后端 我现在想要的是只有管理员用户可以下载 pdf 文件存储在资产中 有没有办法
  • 用于电子邮件和文件日志记录的 Symfony2 Monolog 设置

    我想设置 Symfony2 向我发送电子邮件critical错误 但只需记录error级别错误 下面的设置可以做到这一点吗 monolog handlers main type fingers crossed action level er

随机推荐

  • 如何在 Razor Pages 中返回带有对象的不同视图?

    在 NET Framework MVC中 我可以使用以下代码来完成 public class HomeController Controller public ActionResult Index Student student new S
  • ssrs 报告中的格式编号

    argh 受不了我自己也想不通 我在报告中的数字格式中使用了它 0 00 0 00 格式为 1 212 89 这不完全是我想要的 因为我想要 1 212 89 无论服务器的区域设置如何 所以我尝试了这个 0 00 0 00 但这给了我这个
  • 从 FeedParser 获取 Feed 并导入到 Pandas DataFrame

    我正在学习Python 作为实践 我正在使用 feedparser 构建一个 RSS 抓取器 将输出放入 pandas 数据帧并尝试使用 NLTK 进行挖掘 但我首先从多个 RSS 提要获取文章列表 我用这篇文章来了解如何传递多个提要 ht
  • CGridView 使用 Tab 时过滤重复的 Ajax 请求

    在我的 Web 应用程序中 我使用选项卡并根据 Ajax 加载部分视图 所以有可能我确实加载了相同的内容CGridView多次 无需重新加载页面 如果发生这种情况 如果我使用 我会变成重复的 Ajax 请求CGridView过滤器 过滤器和
  • 无法对 @KafkaListener 带注释的方法进行单元测试

    我正在尝试在 Spring 中对 kafka 消费者类进行单元测试 我想知道如果 kafka 消息发送到它的主题 则侦听器方法被正确调用 我的消费者类注释如下 KafkaListener topics kafka topics myTopi
  • 将浮点数向下舍入到最接近的整数?

    我想获取一个浮点数并将其向下舍入到最接近的整数 然而 如果它不是一个整体 我always想要向下舍入变量 无论它与下一个整数的接近程度如何 有没有办法做到这一点 int x 转换为整数将截断 朝向 0 0 例如math trunc 对于非负
  • 如何在VC++/MFC中替换字符串中两个子字符串之间的字符串?

    假设我有一个 CString 对象 strMain AAAABBCCCCCCDDBBCCCCCCCCDDDAA 我还有两个较小的字符串 例如 strSmall1 BB strSmall2 DD 现在 我想替换 strMain 中 strSm
  • 使用 Spring beans 作为带有 @Cacheable 注释的键

    如何使以下工作发挥作用 一个 spring bean 该 bean 具有应使用 Cacheable 注释进行缓存的方法 另一个为缓存创建密钥的 spring bean KeyCreatorBean 所以代码看起来像这样 Inject pri
  • 在 Angular X 的子模块中使用 AppModule 中的组件(X 代表 2+)

    我创建了一个小组件 LoadingComponent 在我的应用程序的根目录中并在我的应用程序中 显然 声明了它AppModule 该组件在我的应用程序加载时使用 并且应该显示一些精美的加载动画 现在我想在保存某些内容时在子模块中使用它 但
  • 在 vm 脚本上下文中传递函数

    假设我有一个如下所示的库模块 module exports increment function count 我想在动态生成的脚本中使用它 如下所示 function lib increment 通过将其传递到沙箱中 var sandbox
  • 如何在 MKMapView 中保持图钉和地图在移动叠加层上方居中

    当我在地图上垂直移动 通过平移手势 另一个视图时 如何使图钉保持在地图的中心 以便图钉保持在覆盖层 而不是实际的 MapKit 覆盖层 上方 请参阅随附的第一个和最终状态的屏幕截图 当用户向上 向下平移时 我得到了覆盖层和屏幕顶部之间的空间
  • 如何将 WPF 复选框置于其可点击区域的中心?

    如果我在 WPF 中创建一个 CheckBox 控件 没有内容 我只需要选中 取消选中部分 它会放置 框 视觉对象 其中有或没有复选标记的 3D 矩形 位于控件的左上角 我可以将 盒子 视觉效果放在center而是使用 CheckBox 控
  • Emacs Windows 拼写检查 - aspell 或 hunspell

    我在Windows XP操作系统上使用emacs 23 1 50版本 我无法使用 emacs wiki 提供的示例将 hunspell 或 aspell 设置为 emacs 的一部分 任何人都有 Windows XP 的工作配置 请帮助我
  • 条件 DataGridView 格式设置

    我有一个 DataGridView 我将其 DataSource 属性设置为我自己的对象的 BindingList BindingList
  • 合并数据框,保留所有项目熊猫

    如何合并两个不同的数据帧 保留每个数据帧的所有行 同时填充空白 DF1 Name Addr Num Parent Parent Addr Matt 123H 8 James 543F Adam 213H 9 James 543F James
  • “Docker 子网”有什么用?

    docker desktop 中有一个选项允许更改 Docker 子网 我没有看到这个默认子网192 168 65 0 28被用在任何地方 我尝试过了docker network inspect在每个 Docker 内部网络上 检查了 do
  • Cordova config.xml 文件被重写

    我设置了一个基本的 Cordova 项目 每当我运行 cordova build 时 IOS 中的 config xml 文件都会被重写为默认值 并且我在项目文件夹的 config xml 中添加的任何首选项都会简单地附加到配置中 IOS平
  • SQL Server Management Studio 无法连接到 Sql Server

    我已经使用 MS Web Platform Installer 2 0 安装了 Visual Web Developer 2010 SQL Server 2008 R2 和 SQL Management Studio 2008 但每当我想登
  • Java 泛型(通配符)

    我有几个关于 Java 中通用通配符的问题 有什么区别List 基本上意味着
  • Symfony2:如何在FormType中调用实体的存储库

    我尝试调用我的实体的存储库Category以我的实体的类形 式BonCommande 但是出现了这个错误 注意 未定义的属性 C wamp www Symfony test src Application VehiculeBundle Fo