可捕获的致命错误:参数 1 传递给 ?交响乐2

2024-01-05

我对以下错误消息感到困惑和沮丧:

可捕获的致命错误:参数 1 传递到 Medicine\UserBundle\Entity\User ::setUsertype() 必须是 Medicine\UserBundle\Entity\Usertype 的实例, 给定的 Doctrine\Common\Collections\ArrayCollection 实例,调用于 /opt/lampp/htdocs/drugs/vendor/symfony/src/Symfony/Component/Form/Util /PropertyPath.php 第 347 行,并在 /opt/lampp/htdocs/drugs/src/ 中定义 Medicine/UserBundle/Entity/User.php 第 224 行

我认为这个错误是由于在我的实体中使用了 Manytoone 字段,我什至尝试在另一个实体中保留 onetomany 。

我有一个用户实体和一个用户类型实体,usertype_id 是用户表中的一个多字段。这是两个实体的代码:-

User

namespace Medicine\UserBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
* @ORM\Entity(repositoryClass="Medicine\UserBundle\Repository\UserRepository")
* @ORM\Table(name="user")
* @ORM\HasLifecycleCallbacks()
*/

class User
{
/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 * @ORM\HasLifecycleCallbacks()
 */
protected $id;

/**
 * @ORM\Column(type="string")
 */
 protected $username;

 /**
 * @ORM\ManyToOne(targetEntity="Usertype", inversedBy="users")
 * @ORM\JoinColumn(name="usertype_id", referencedColumnName="id")
 */
 protected $usertype;

/**
 * @ORM\Column(type="string")
 */
 protected $image;

/**
 * Set usertype
 *
 * @param Medicine\UserBundle\Entity\Usertype $usertype
 */
public function setUsertype(\Medicine\UserBundle\Entity\Usertype $usertype)
{
    $this->usertype = $usertype;
}

/**
 * Get usertype
 *
 * @return Medicine\UserBundle\Entity\Usertype 
 */
public function getUsertype()
{
    return $this->usertype;
}
}

我只是显示相关代码,我拥有上述代码的所有 getter 和 setter 方法。

UserType

namespace Medicine\UserBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
* @ORM\Entity(repositoryClass="Medicine\UserBundle\Repository\UsertypeRepository")
* @ORM\Table(name="usertype")
* @ORM\HasLifecycleCallbacks()
*/

class Usertype
{
/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 * @ORM\HasLifecycleCallbacks()
 */
protected $id;

/**
 * @ORM\Column(type="string")
 */
protected $name;

/**
* @ORM\OneToMany(targetEntity="User", mappedBy="usertype")
*/
protected $users;

public function __construct()
{
    $this->users = new \Doctrine\Common\Collections\ArrayCollection();
}

/**
 * Add users
 *
 * @param Medicine\UserBundle\Entity\User $users
*/
public function addUser(\Medicine\UserBundle\Entity\User $users)
{
    $this->users[] = $users;
}

/**
 * Get users
 *
 * @return Doctrine\Common\Collections\Collection 
 */
public function getUsers()
{
    return $this->users;
}
}

控制器

当用户想要登录时执行。他将填写用户名密码和 UserType:

public function indexAction()
{
$entity = new User();
    $form = $this->createForm(new LoginForm(), $entity);
    $request = $this->getRequest();
    if ($request->getMethod() == 'POST') {
        $form->bindRequest($request);
        if ($form->isValid()) {
        echo "<pre>"; print_r($entity->getUsertype()); exit;
        $em = $this->getDoctrine()
              ->getEntityManager();
        $em->persist($entity);
        $userrepository = $em->getRepository('MedicineUserBundle:User');
        echo "<pre>"; print_r($entity->getUsertype()); exit;
        $all = $userrepository->findOneBy(array('login' => $entity->getLogin(), 'password' => $entity->getPassword()));
        if($all)
        {
            return $this->redirect($this->generateUrl('MedicineUserBundle_login'));
        }
        }
     }

     return $this->render('MedicineUserBundle:User:loginpage.html.twig',array(
        'form' => $form->createView()
    ));
}

登录表单

 public function buildForm(FormBuilder $builder, array $options)
{
    $builder
    ->add('login', 'text', array('label'  => 'Username',))
        ->add('password','password')
    ->add('usertype', 'entity', array('class' => 'MedicineUserBundle:Usertype', 'property'=>'name', 'multiple'  => true, ))

    ;
}

The 'multiple' => true与您的实体关联定义相结合会导致此问题。

您应该发现,如果您将 multiple 更改为 false(因此只能为您的用户选择一种 UserType),一切都会正常工作。

如果您希望一个用户有多个用户类型,则您有一个多对多关联 - 一个用户可以有多个用户类型,一个用户类型可以有多个用户。请参阅 Doctrine 的 ManyToMany 关联类型来实现这一点。文档在这里 http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/association-mapping.html#many-to-many-bidirectional.

希望这可以帮助。

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

可捕获的致命错误:参数 1 传递给 ?交响乐2 的相关文章

  • Symfony2 功能测试会话持久性

    我正在尝试在 Symfony 中进行一些功能测试 但目前我的会话遇到了问题 我执行了一段代码 它似乎有效 但容器的会话中没有存储任何内容 我有一个表格 您可以在其中设置数据 当您提交它时 它会检查值并将其存储在会话中 然后它重定向到另一个页
  • 覆盖默认标识符生成策略对关联没有影响

    交响乐 2 7 2 学说 ORM 2 4 7 MySQL 5 6 12 PHP 5 5 0 我有一个具有自定义 ID 生成器策略的实体 它工作完美 在某些情况下 我必须使用 手工制作 的 ID 来覆盖此策略 当主实体在没有关联的情况下被刷新
  • FOSUserBundle 密码验证

    我正在尝试覆盖 FOSUserBundle 中当前的密码验证 我尝试了几种选择 但仍然找不到解决方案 为了增加密码的 MinLength 我创建了一个validation yml src Acme UserBundle Resources
  • Symfony2 Twig 扩展

    我在实现树枝扩展时遇到一些问题 我需要创建自己的过滤器 子过滤器 所以我想到了使用twig扩展 我在 MyApp Bundle WebsiteBundle 和文件上创建了一个名为 Extension 的文件夹 网站扩展 php namesp
  • Sonata DateTimePickerType 类默认日期显示错误的日期时间格式

    我陷入困境 我不知道如何使用 sonata DateTimePickerType 类正确设置默认日期和时间 我尝试了不同的方法 但到目前为止 没有一种方法没有帮助 在下面的截图中 help 键显示正确的日期和时间 但是当我使用 dp 默认日
  • 为什么将 Ubuntu 升级到 22.04 后 phpMyAdmin 停止工作?

    刚刚升级到 Ubuntu 22 04 现在我的 phpmyadmin 无法加载 我收到以下错误 解析错误 语法错误 usr share php Symfony Component DependencyInjection ContainerB
  • Symfony 4:添加 Twig_Extension_StringLoader

    在我的 Symfony 4 项目中 我有一个包含 HTML 的变量 我尝试使用 Twig 显示该变量 我想使用template from string 功能但我必须添加Twig Extension StringLoader到 Twig 环境
  • 如何将所有请求查询参数传递给 twig symfony 2 中的嵌入式控制器?

    render controller SomeBundle Foo Bar HERE I WANT TO PASS ALL query parameters app request query all 那么我可以在子请求中访问所有主请求查询参
  • 螺栓中的内容类型

    我试图在 Bolt 中为两种内容类型提供相同的单一 slug 它们都应该具有相同的字段和相同的模板 此时我使用record template 标签来设置每个内容类型的默认模板 vervolgpagina name vervolgpagina
  • 在 Twig 模板中的翻译内容中添加链接

    在 Twig 模板中 我需要一个包含链接的翻译文本 路径应该由路由器生成 而不是静态嵌入 Twig 不允许在 trans 块内渲染变量 我还知道以下内容 trans with name Fabien from app Hello name
  • 将 Symfony2 服务配置移至捆绑包

    我的 config yml 中有以下内容 services my user provider class Acme MySecurityBundle Security UserProvider 但想将其移至我的 config ymlMySe
  • 注销不会在 FOSUserBundle 中正确销毁/清除会话

    我遇到了一些问题 不知道为什么 当我从由 FOSUserBundle 处理的应用程序注销时 因为当前会话永远不会被破坏 甚至不清楚当我重新登录时会导致问题 因为我在会话上存储了一些数据 这就是我的security yml好像 securit
  • Doctrine2 批量插入

    是否可以使用单个查询将多个实体插入数据库 当我使用一个例子时here http docs doctrine project org projects doctrine orm en 2 0 x reference batch process
  • symfony2 选择单选框的默认值

    我的项目是使用 Silex 和 Symfony 组件 即表单组件 编写的 我尝试创建一组从类中构建的单选按钮 并且我想预先选择其中一个单选按钮 我创建这样的表格 form app form factory gt createBuilder
  • Symfony php.ini Debian

    我在 Oracle VM VirtualBox 上使用 Debian 7 amd64 LAMP 服务器 我正在尝试安装 Symfony 但遇到了一些小问题 当我运行命令时 php my project name app check php
  • 如何指定Google API获取生日的范围

    我正在尝试获取birthday来自 Google API 但检索到的数据在HWIOAuthBundle不包含它 我想知道是否指定范围google plus apiconfig yml 中的内容是否正确 如果没有 请提供链接或更正的范围 go
  • ON DELETE CASCADE 与 Symfony 和 Doctrine 的多对多关系

    我想要与 Symfony 和 Doctrine 建立简单的多对多关系 这实际上是一个单向的一对多关联 可以通过连接表映射为文档表明 http doctrine orm readthedocs org en latest reference
  • 功能测试 - 模拟服务不会保留在服务容器中

    我希望有人能够对我面临的这个问题有所启发 问题 我在功能单元测试中模拟了doctrine orm default entity manager 服务 我将其注入客户端服务容器中 这样我就不必在功能测试过程中访问我的数据库 对于仅涉及 GET
  • 如何将parameters.yml中的Symfony参数注入Behat 3配置中?

    我需要设置base url for Behat MinkExtension 这是我的一部分应用程序 配置 parameters yml parameters behat base url http my app local app test
  • PayPal REST API:通过重定向 URL 或 Webhook 调用履行订单/付款?

    我正在致力于将 PayPal REST API 集成到我的 Symfony 2 Web 应用程序中 我不确定完成订单 付款的正确时间 地点 与金额 客户数据等其他参数一起 我将两个 URL 传输到 PayPal API 一个是接受付款时用户

随机推荐

  • C++ 二进制转十进制

    所以我知道有一种方法可以使用 bitset 库将 Dec 转换为二进制 但是您可以使用 bitset 库将二进制转换为十进制吗 或者你必须手动完成 bitset lt 8 gt bin x number 可以 但它应该是一个字符串 std
  • 在线程中创建的 DatabaseWrapper 对象只能在同一线程中使用。”当尝试使用 celery 插入数据库时

    我正在使用 celery 从 csv 读取数据并将其上传到 Postgres celery 任务正在工作 我认为 但是 django 抛出错误 我正在获取一个文件 将其转换为 pandas 删除 2 列 然后转换为 numpy 并传递给 c
  • 无法将图像上传到 Django 项目,获取 Form 对象没有属性“保存”

    我正在尝试通过模板输入的文件上传图像文件 我已遵循所有说明 但在附加文件并单击提交时出现此错误 AttributeError PicUpForm object has no attribute save 因此我的图像没有上传到指定的目录 并
  • iPad/iPhone双击问题

    我有一个非常相似的问题iPad iPhone 悬停问题导致用户双击链接 https stackoverflow com questions 3038898 ipad iphone hover problem causes the user
  • solr tomcat UTF-8

    我在 tomcat 中有一个 solr 设置 并且使用 jdbc 从数据库导入数据 但是当我在导入数据后使用非 unicode 字符时 发送查询时它无法识别结果中的查询 对于带有 solr 的 Tomcat 的 UTF 8 支持 您可能需要
  • Spring Web 应用程序中配置文件的处理

    我曾多次遇到同样的问题 我想了解其他人对这个问题的看法 假设我们将 Spring 应用程序打包为 war文件 我们想运行它几种环境 开发 测试 预生产 生产 等 为了访问应用程序所需的基础设施 数据库 网络服务等 我们将访问信息存储在配置文
  • 在 C# 中将 Httpheader 添加到 selenium chrome webdriver

    我的 C 代码看起来像这样 用于创建 chrome Web 驱动程序 我想将自定义 HTTP 标头添加到我的所有 http 请求中 例如 用户代理 Android var service ChromeDriverService Create
  • jQuery 删除所有元素,直到找到 id='whatever'

    需要删除从开始标签到下一个标签的所有代码 我试过这个 page1 remove 但这只会删除标签之间的内容 我不知道 page1 和 page2 标记之间还有什么 因为代码是根据页面上表单元素的类型动态添加的 div div div div
  • nmap 和 print(nm.csv()) 需要帮助打印到 csv.file

    我需要您帮助处理 nmap 脚本并将输出打印到 csv 文件 当我运行脚本并完成它时print nm csv 我得到了以下显示的结果 这是我想要的第一名 host hostname hostname type protocol port n
  • Fat Free Framework (F3):自定义 404 页面(和其他错误)

    如何处理 404 自定义页面 以及可能的其他错误 我只是尝试在路由部分添加 GET codes WebController gt error 我的 Class WebController 处理错误的地方 对于 404 我解决了 部分 实际上
  • 如何从 UIScrollView 窃取触摸?

    今天 在我的创作时间里 我做了一些相当全面的研究 了解如何从 UIScrollView 窃取触摸并将它们立即发送到特定的子视图 同时保持滚动视图其余部分的默认行为 考虑在 UITableView 中包含 UIPickerView 默认行为是
  • 在 ember-cli 中导入自定义库

    I have web app and Ember app在 iframe 中 我想从中导入自定义库web app to ember app就像全局变量一样 库看起来像具有功能的对象 var helpers helper1 function
  • 抓取非 RSS 页面以生成提要

    我想抓取一个定期更新的页面 添加与以前的结构完全相同的新文章 以生成 RSS 提要 我可以编写代码来轻松分析页面 但是如何模拟 ping 即页面更新时我的 php 脚本如何知道 它必须是一个 cron 作业吗 我知道可能是一个重复的问题 但
  • Django:如何使用参数重定向

    提交表单后 我想重定向到传递一个 flag True 的特定视图 以便激活弹出窗口 例如 def view1 request if request method POST form Form request POST if form is
  • Java中通过忽略开始行和结束行的一部分来扫描HBase行

    我的 HBase 行如下 ABC A1 20160101 ABC A2 20160102 ABC A3 20160103 XYZ A9 20160201 从我的Java代码中我知道第一部分ABC和最后一部分20160101 我没办法得到中间
  • 无法将 WiX 属性设置为等于属性文件中的属性

    我可能患有 有时会得病 但我可以发誓 上次我涉足 WiX 时 建议有一个单独的文件来设置属性 以便以后引用 如果这些属性中的任何一个不是本意的 是静态的 基本上 在构建序列开始之前根据需要更新它们 所以基本上 我正在尝试 将属性文件加载到
  • NLog 上的配置转换不起作用

    我有一个 Web 项目 ASP NET MVC 4 项目 其中存储了许多配置网页配置 and in NLog config files 我有几个发布配置文件发布配置文件1 发布配置文件2当使用发布配置文件将我的 Web 项目部署到服务器时
  • IIS Express applicationhost.config - 身份验证错误

    我在 Windows 10 下运行 IIS Express 不要与普通 IIS 混淆 我的理解是设置存储在 My Documents IISExpress config applicationhost config 中 当使用创建 ASP
  • ScrollView .scrollTo 不起作用?保存 ScrollView 旋转位置

    好吧 我必须在这里忽略一些非常简单的事情 但我认为我正在尝试做一些相当基本的事情 只需保留 ScrollView 在方向变化时的滚动条位置 这是我的 onSaveInstanceState 和 onRestoreInstanceState
  • 可捕获的致命错误:参数 1 传递给 ?交响乐2

    我对以下错误消息感到困惑和沮丧 可捕获的致命错误 参数 1 传递到 Medicine UserBundle Entity User setUsertype 必须是 Medicine UserBundle Entity Usertype 的实