原则2:错误:类“.. \\ ..”没有现场或协会命名为“......”(Doctrine 2: E

2019-09-17 10:38发布

当搜索,我想出了具有类似问题的人很多成果,但他们总是涉及到关联的错误。 我想一个简单的文本字段和数据库添加到一个表,并且对于我的生活,我想不出有什么关于这一次不同的 - 当我没有任何问题,很多次这样做。

我添加了一个“record_checksum”字段到4级不同的实体,但我将只使用一个,在这里简化的例子。 (所有4发生相同错误)。

这里是我的实体\ Cloud.php文件的例子,在底部加入了“record_checksum”字段:

use Doctrine\ORM\Mapping as ORM;

namespace Entity;

/**
 * Entity\Cloud
 *
 * @orm:Table(name="cloud")
 * @orm:Entity
 * @orm:HasLifecycleCallbacks
 */
class Cloud
{
    /**
     * @var integer $id
     *
     * @orm:Column(name="id", type="integer", length="13")
     * @orm:Id
     * @orm:GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var float $position_x
     *
     * @orm:Column(name="position_x", type="float", length=9)
     */
    private $position_x;

    /**
     * @var float $position_y
     *
     * @orm:Column(name="position_y", type="float", length=9)
     */
    private $position_y;

    /**
     * @var string $commit_group
     *
     * @orm:Column(name="commit_group", type="string", length=32, nullable=true)
     */
    private $commit_group;

    /**
     * @var string $commit_key
     *
     * @orm:Column(name="commit_key", type="string", length=13, nullable=true)
     */
    private $commit_key;

    /**
     * @var string $record_checksum
     *
     * @orm:Column(name="record_checksum", type="string", length=32, nullable=true)
     */
    private $record_checksum;

该类的其余部分是getter / setter方法,所以我会离开它。 要看到整个实体文件,我把它挂在引擎收录( http://pastebin.com/9LheZ6A1 )。 该“commit_key”我只是增加了几个星期前,没有任何问题。

现在我更新模式:

$ doctrine orm:schema-tool:update --dump-sql
ALTER TABLE cloud ADD record_checksum VARCHAR(32) DEFAULT NULL;
$ doctrine orm:schema-tool:update --force
Updating database schema...
Database schema updated successfully!

我证实了这一领域目前在数据库表中。

然而,当我运行一个简单的查询DQL这样的:

$dql =  "SELECT c.id AS id, c.commit_key AS key, c.record_checksum AS checksum ".
                "FROM Entity\\Cloud c WHERE c.commit_group = :commit_group";

我得到的错误:

 [Semantical Error] line 0, col 42 near 'record_checksum': Error: Class Entity\Cloud has no field or association named record_checksum, 

我现在已经撞了我的头挂在墙上了这一段时间。 我敢肯定,我俯瞰东西真的傻了。 任何帮助是极大的赞赏! -缺口

Answer 1:

尝试:

  1. 明确规定,可以包含的配置或PHP代码的任何缓存。
  2. 重命名场的情况下,第一个解决方案没有奏效。


Answer 2:

转至Entity问题和检查变量名。 如果是类似TESTVar ,和你想使用testVar查询,这将让你的变量不会在存在错误Entity

更改为使用查询TESTVar代替testVar ,它会工作。



文章来源: Doctrine 2: Error: Class “..\\..” has no field or association named “…”