DQL 查询返回:预期 StateFieldPathExpression 或 SingleValuedAssociationField

2023-12-20

我有以下 DQL 查询:

public function findByIdJoinedToCodeExample($pageId)
{
    $query = $this->getEntityManager()
        ->createQuery('
            SELECT c FROM acmeStyleGuideBundle:codeExample c
            JOIN c.PageContent p
            WHERE p.codeExample = :cex'
        )
        ->setParameter('cex', $pageId);

    try {
        return $query->getResult();
    } catch (\Doctrine\ORM\NoResultException $e) {
        return null;
    }
}

它尝试从名为 codeExample 的实体检索数据,该实体与名为 PageContent 的实体具有 ManyToOne 关系。随着数据库的正确设置和灯具的填充,这些关系似乎已正确设置,但是当我尝试运行上述查询时,我遇到以下错误:

acmeStyleGuideBundle:Page:pages.html.twig 中的模板渲染期间抛出异常(“[语义错误]第 0 行,第 130 列靠近‘codeExample =’:错误:无效的 PathExpression。StateFieldPathExpression 或 SingleValuedAssociationField 预期。”)在第 16 行。

它由以下控制器调用:

// find the current pages code examples (if there are any)
public function findCodeExamplesAction($pageId =10) 
{
    $em = $this->getDoctrine()->getManager();
    $codeExample = $this->getDoctrine()
    ->getRepository('acmeStyleGuideBundle:codeExample')
    ->findByIdJoinedToCodeExample($pageId);
    return $this->render(
        'acmeStyleGuideBundle:Page:codeExample.html.twig', 
        array(
            'Code' => $codeExample
        )
    );
}

注意: $pageID = 10 是因为它告诉我 pageID 没有被填充。这似乎是一个与此不同的问题,所以我现在为此设置了默认值。

我已经研究这个问题好几个小时了,但我仍在学习 Doctrine 和 Symfony,我只是无法自己解决这个问题。

这是我的代码示例实体:

/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
    private $id;

/**
 * @var string
 *
 * @ORM\Column(name="textExample", type="text")
 */
    private $textExample;

/**
 * @var string
 *
 * @ORM\Column(name="codeExample", type="text")
 */
    private $codeExample;

/**
 * @var integer
 *
 * @ORM\Column(name="lang", type="integer")
 */
    private $lang;

/**
 * @ORM\ManyToMany(targetEntity="PageContent", mappedBy="codeExample")
 */
    protected $PageContent;

/**
 * Constructor
 */
public function __construct()
{
    $this->PageContent = new \Doctrine\Common\Collections\ArrayCollection();
}

这是我的 PageContent 实体:

/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
    private $id;

/**
 * @var ArrayCollection $pageSector_Id;
 * @ORM\ManyToMany(targetEntity="pageSector", inversedBy="PageContent")
 * @ORM\JoinTable(
 *      name="pageSector_PageContent",
 *      joinColumns={@ORM\JoinColumn(name="PageContent_id", referencedColumnName="id")},
 *      inverseJoinColumns={@ORM\JoinColumn(name="pageSector_Id", referencedColumnName="id")}
 *      )
 */
    protected $pageSector;

 /**
 * @var ArrayCollection $pageCategory_Id;
 * @ORM\ManyToMany(targetEntity="pageCategory", inversedBy="PageContent")
 * @ORM\JoinTable(
 *      name="pageCategory_PageContent",
 *      joinColumns={@ORM\JoinColumn(name="PageContent_id", referencedColumnName="id")},
 *      inverseJoinColumns={@ORM\JoinColumn(name="pageCategory_Id", referencedColumnName="id")}
 *      )
 */
    protected $pageCategory;

/**
 * @ORM\ManyToOne(targetEntity="pageTypes", inversedBy="PageContent")
 * @ORM\JoinColumn(name="pageTypesId", referencedColumnName="id")
 */
    protected $pageTypes;

/**
 * @var integer
 *
 * @ORM\Column(name="pageTypesId", type="integer")
 */

    private $pageTypesId;

/**
 * @ORM\OneToMany(targetEntity="PageContent", mappedBy="parentPage")
 */
    private $childPages;

 /** @ORM\ManyToOne(targetEntity="PageContent", inversedBy="childPages")
 *   @ORM\JoinColumn(name="parentPage_id", referencedColumnName="id")
 **/
    private $parentPage;

/**
 * @var string
 *
 * @ORM\Column(name="pageName", type="string", length=255)
 */
    private $pageName;

/**
 * @var string
 *
 * @ORM\Column(name="pageUrl", type="string", length=255)
 */
    private $pageUrl;

/**
 * @var string
 *
 * @ORM\Column(name="richText", type="text")
 */
    private $richText;

/**
 * @var ArrayCollection $pageSector_Id;
 * @ORM\ManyToMany(targetEntity="codeExample", inversedBy="PageContent")
 * @ORM\JoinTable(
 *      name="codeExample_PageContent",
 *      joinColumns={@ORM\JoinColumn(name="PageContent_id", referencedColumnName="id")},
 *      inverseJoinColumns={@ORM\JoinColumn(name="codeExample_Id", referencedColumnName="id")}
 *      )
 */
    protected $codeExample;

你能给我的任何建议都会很棒。我完全被困在这里了。


我自己设法解决了:

 $query = $this->getEntityManager()
    ->createQuery('
        SELECT c FROM acmeStyleGuideBundle:codeExample c
        JOIN c.PageContent p
        WHERE p.codeExample = :cex'
    )
    ->setParameter('cex', $pageId);

本来应该:

 $query = $this->getEntityManager()
    ->createQuery('
        SELECT c FROM acmeStyleGuideBundle:codeExample c
        JOIN c.PageContent p
        WHERE p.id = :cex'
    )
    ->setParameter('cex', $pageId);

这对我来说似乎很奇怪,因为我认为对象的重点是不使用 id,但它有效,所以这对我来说已经足够好了。如果有更好的方法,欢迎告诉我。

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

DQL 查询返回:预期 StateFieldPathExpression 或 SingleValuedAssociationField 的相关文章

  • 从 PHP 数组生成 HTML 表

    我不明白这一点 我需要解决看似简单的问题 但这超出了我的逻辑 我需要编写一个函数 table columns input cols 它将输出一个表 示例 input array apple orange monkey potato chee
  • 检查 $_POST 数据

    我正在对表单进行一些垃圾邮件检查 下面的代码在我的本地主机上正常工作 如果为 true 则重定向到 google com 但是 当它在生产服务器上时却不起作用 执行脚本的其余部分并且不重定向到 Google com if POST SERV
  • 如何从父类中获取子类名

    我试图在不需要子类上的函数的情况下完成此任务 这可能吗 我有一种感觉 但我真的很想确定
  • 用户可以更改 PHP 中 $_SESSION 的值吗?

    这是我的想法 我想知道是否可能 将信息存储在 PHP 的 SESSION 变量中有多安全 在 SESSION 变量中存储变量有两个潜在的 不安全 风险 另一个答案所描述的第一个称为 会话固定 这里的想法是 由于会话 ID 存储在 cooki
  • 在服务器上找不到本地主机或 phpMyAdmin:如何修复?

    我按照安装说明进行操作PHP MySQL and PHPMyAdmin 但是当我尝试访问时http localhost phpmyadmin 我收到此错误 未找到 在此找不到请求的 URL phpmyadmin 服务器 然后我尝试访问loc
  • 按文件名对 $_FILES 进行排序 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 他俩 如您所知 在新的 HTML5 中 您可以非常轻松地上传多个文件 但我这里的问题是如何按列 名称 对 FILES 数组进行排序 这是
  • AWS-PHP-SDK / SNS 直接寻址返回错误

    您好 我正在使用 Laravel 4 设置来利用 AWS SNS 向我的 iOS 设备发送推送消息 从 AWS 控制台向我的设备发布命令效果很好 然后我尝试从 PHP sns AWS get sns sns gt publish array
  • 如何在 JavaScript 中创建服务器端进度指示器?

    我想在我的网站中创建一个部分 用户可以在其中进行一些简单的操作update纽扣 这些中的每一个update按钮将发送到服务器 并在幕后进行长时间的处理 当服务器处理数据时 我希望用户有某种进度指示器 例如进度条或文本百分比 我使用 jQue
  • 在哪里可以获得 PHP 5.3+ 的 runkit DLL 扩展?

    这是一个简单的问题 我在哪里可以获得 PHP 5 3 版本的 runkit 扩展 它的手册 http php net manual en book runkit php http php net manual en book runkit
  • 覆盖 FOS 用户包中的“更改密码”模板

    我做了一些研究 遗憾的是找不到任何帮助 因此 我将 FOSUserBundle ChangePasswordAction 渲染到我的模板中 但它显示供应商提供的默认模板 我的渲染控制器的模板 block body h2 Einstellun
  • 使用值填充的 Symfony2 自定义字段类型

    这是先前问题的后续问题Symfony2 自定义表单类型或扩展 https stackoverflow com questions 24079288 symfony2 custom form type or extension 我正在尝试为订
  • Laravel Vue 组件只能传递数字?

    在我的 UserMenu vue 中我写道 export default props nameVal data return 并在blade php中
  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • Facebook API sdk 4.0 - 将照片发布到 Facebook

    我正在尝试创建一个应用程序 用户可以在其中浏览照片并将其从计算机提交到 Facebook 为此 他们首先必须将照片上传到服务器 然后使用 Facebook 请求将此图像发布到 Facebook 我正在使用多部分 表单数据 这就是我到目前为止
  • Nginx 502 网关错误。通过增加buffer来解决。为什么?

    我正在设置 LEMP 堆栈来运行 Drupal 我安装了 Nginx 和 PHP FastCGI Nginx 工作正常 但任何运行 PHP 的尝试都会出现错误 502 Bad Gateway 谷歌很快发现 nginx 502 错误网关 ht
  • 如何使用更新资源控制器 laravel 4?

    我有带有索引 编辑 更新方法的客户控制器 Route resource customer CustomerController 控制器方法更新 public function update id echo id 我的 HTML 表单
  • 从 Laravel 4 输入生成新数组

    我使用 Input all 从动态生成的表单中获取一些输入 我使用 jQuery 来允许用户添加字段 字段名称为 first names last names 和 emails input 变量现在看起来像这样 array size 4 t
  • PHP 接口有属性吗?

    PHP 中的接口有属性 还是只有方法 您可以在 DocBlock 中为接口声明属性 然后 IDE 将提示接口的这些属性 PhpStorm 会这样做 但这不会强制在实现类中实际实现这些字段 例如 property string passwor
  • 使用会话 php 创建 cookie?

    我使用会话来登录我网站中的用户 问题是 我想让用户remember密码 因此关闭 打开浏览器后他们不需要再次登录 我需要使用 cookie 和 session 来实现它吗 my code user POST user pass POST p
  • 通过 htaccess 将 PNG 解析为 PHP 仅适用于本地服务器,但不适用于网络服务器

    我用 PHP 创建了一个动态 PNG 图片 为了使用 PNG 扩展名 我创建了一个包含以下内容的 htaccess 文件 AddType application x httpd php png 在我的本地 XAMPP 服务器上 一切工作正常

随机推荐

  • 如何确定最接近的纵横比

    给定一个矩形形状 S 长宽比为 sx sy 以及另外两个矩形形状 A 长宽比为 ax ay 和 B 长宽比为 bx by 我如何找出形状 A 或 B 中哪一个具有最接近 S 的长宽比 形状的大小并不重要 是 sx sy ax ay 和 sx
  • 获取数据库表中的数据,如果不存在则将其插入,否则返回行 ID

    我有一个包含 date file creation 列的表文件 我想创建一个包含日期文件创建的表日期 当我插入新文件时 我检查表日期是否存在 我返回行 ID 并将其作为外部插入键在表文件中 否则我插入一个新日期并获取其新行 ID 以将其插入
  • 页面中的 Nuxtjs 异步等待在页面刷新时不起作用

    我尝试使用 vuex 和 nuxt js 在页面的 fetch 方法中获取数据 但是每当有人刷新页面时 它都会失败 但当我通过 nuxt 导航导航时 它会工作 所以在我的页面中我有 fetch store params store disp
  • 添加一列排名

    我有一些数据 test lt data frame A c aaabbb aaaabb aaaabb aaaaab bbbaaa 等等 所有元素的长度都相同 并且在我获取它们之前就已经排序了 我需要创建一个新的排名列 第一 第二 第三 之后
  • 删除 R 输出中的反引号

    我有某些变量lm在 R 中自动用反引号 反引号换行 例如名称中带有冒号的变量 经过一些处理后 我尝试用以下方法写出线性模型的变量和系数write table 不幸的是 反引号也被写出来了 如何防止这些反引号被写入 举一个简单但不切实际的例子
  • C# 调用 ActiveDirectory 的 SetPassword 函数的问题

    我成功创建了一个新用户 然后尝试使用以下代码设置其初始密码 newUser AuthenticationType AuthenticationTypes Secure newUser Invoke SetPassword new objec
  • DCG和左递归

    我正在尝试实现一个 dcg 它采用一组 a b c d 形式的字符串 我遇到的问题是 如果我有一个 s a c b 它返回 true 这是正确的答案 但是当我有 s a c f 形式的查询时 它不会返回答案 并且会耗尽本地堆栈 s gt s
  • ftp_get 不适用于大文件

    这是我的代码 con ftp connect ftpserver com ftp login con username password ftp pasv con true ftp set option con FTP TIMEOUT SE
  • create-react-app 不会生成 public 和 src 文件夹,因此无法启动

    我已经安装 CRA 一个多月了 并且一直在使用它 没有任何问题 但是今天我创建了一个新的 React 应用程序 它构建了文件夹和目录 但它不生成 src 和公共文件夹 它只是生成节点 module 文件夹 因此当我运行 npm start
  • Cordova/phonegap 活动生命周期

    我正在cordova应用程序中为android开发一个地图插件 让我们暂时忘记已经有不止一个了 并认为这是一个学术问题 的文档MapView states http developer android com reference com g
  • PhoneGap/Cordova iOS:捕获有持续时间限制的视频(即 30 秒)

    我想将视频捕捉时间限制为 30 秒 截至目前 PhoneGap 文档说明了 iOS 实现的以下内容 不支持持续时间参数 无法以编程方式限制录制长度 我确实找到了这篇文章 它似乎给出了纯粹客观的 C 实现的解决方案 iPhone 5秒视频拍摄
  • os_signpost 在模拟器上有效,但在设备上运行时无效

    我想使用仪器跟踪时间的函数之一中有以下代码行 当我从仪器在模拟器上运行该应用程序时 使用 os signpost 测量的时间确实显示出来 我可以准确地测量我需要的东西 Then I switch to device same code Ho
  • R - 分割数据框并保存到不同的文件

    我有一个数据框 其中包含多个地点的每月温度数据 gt df4 1 36 location variable cut month year freq 1 Adamantina temperature 10 Jan 1981 21 0 646
  • 如何消除 SSIS 作业中的“未使用的输出列”警告?

    我正在尝试消除 SSIS 进度日志中的一些虚假警告 我收到一堆关于使用原始 SQL 完成工作的任务中未使用列的警告 我有一个数据流 负责在加载新数据之前将数据归档到临时表中 数据流如下所示 OLEDB Source task read st
  • Xcode 是否隐式将 plist 转换为二进制格式?

    Xcode 在构建过程中是否会隐式地将项目中的 plist 转换为二进制文件 我不认为它隐式地这样做 但很难确定 有一个名为 Property List Output Encoding 又名 PLIST FILE OUTPUT FORMAT
  • 如何修复SSL证书验证失败

    我在本地使用 PHPMailer Apache 和 PHP 当我测试我的 SSL 配置和我的 cacerts 时 我得到 default cert file C Program Files Common Files SSL cert pem
  • 在VB.NET中使用Moq的VerifySet

    我有一个功能可以更新 ASP NET 会员资格提供程序中的用户
  • Python Kivy:如何在单击按钮时调用函数?

    我对使用 kivy 库还很陌生 我有一个 app py 文件和一个 app kv 文件 我的问题是我无法在按下按钮时调用函数 app py import kivy from kivy app import App from kivy uix
  • 如何在 wpf 中使用 WindowChrome 而不使用 Windows Aero 玻璃效果,黑色边框

    我正在尝试使用 WindowChrome 类自定义窗口边框 没有 Windows Aero 玻璃效果 正如预期的那样 我最终得到了一个黑人寄宿生 但我最终也没有标题按钮 从微软我了解到我可以通过将窗口样式设置为 null 来使用标准窗口来克
  • DQL 查询返回:预期 StateFieldPathExpression 或 SingleValuedAssociationField

    我有以下 DQL 查询 public function findByIdJoinedToCodeExample pageId query this gt getEntityManager gt createQuery SELECT c FR