标签: doctrine-orm

我的 Doctrine 实体出现 Annotations\DocLexer 语法错误

Symfony 2 遇到一些问题。

尝试使用我的实体从表中获取一些行。

这是实体

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="articles")
 */
class Article
{
    /**
     * @var integer $id
     *
     * @ORM\Id
     * @ORM\Column(name="id", type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

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


    /**
     * @ORM\Column(type="int" name="author_id")
     */
    protected $authorId;

    /**
     * @ORM\Column(type="datetime" name="creation_date")
     */
    protected $creationDate;

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

    public function getId()
    {
        return $this->id;
    }

    public function getTitle()
    {
        return $this->title;
    }

    public function getAuthorId() …
Run Code Online (Sandbox Code Playgroud)

symfony doctrine-orm

-1
推荐指数
1
解决办法
7451
查看次数

Symfony 3 - 从服务访问学说

你能给我建议一个解决方案,如何从 Symfony 3 中的服务访问 Doctrine?我将 Doctrine 对象从 Controller 发送到构造函数中创建的 Service 对象,但我不确定它是否是最佳选择。

你能给我推荐一个更好的解决方案吗?

 public function editGroupAction($groupId) {
   $doctrine = $this->getDoctrine();
   $roleHelper = new RoleHelper($doctrine);
}
Run Code Online (Sandbox Code Playgroud)

service symfony doctrine-orm

-2
推荐指数
1
解决办法
108
查看次数

Doctrine类表继承映射:为什么父表有外键?

简短的问题:我可以避免为父类的继承类生成外键吗?是否可以在关系所有者而不是父类中设置用于继承映射的鉴别器列?

解释:

我正在设计一个发票模型,其中发票主题可以是以下三种类型之一:

  • 合同
  • 客户
  • 提供者

阅读完Doctrine 继承映射后,我认为类表继承是最适合我的需求的。

Invoice如果我可以从到建立关系,映射的超类InvoiceSubject可以更好地满足我的需求,但我认为我不能:

映射超类不能是实体,它不可查询,并且映射超类定义的持久关系必须是单向的(仅具有拥有方)。这意味着在映射的超类上根本不可能存在一对多关联。此外,只有当映射的超类当前仅在一个实体中使用时,多对多关联才有可能。

此外,使用接口可能是一种解决方案,但关系中的接口只能映射到一个实体

所以,这是我的模型:

/**
 * @ORM\Entity
 */
class Invoice
{
    /**
     * @ORM\ManyToOne(targetEntity="InvoiceSubject")
     * @var InvoiceSubject
     */
    protected $subject;
}

/**
 * @ORM\Entity
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="invoicesubject_type", type="string")
 * @ORM\DiscriminatorMap({"invoice-subject" = "InvoiceSubject", "contract" = "Contract", "provider" = "Provider", "client" = "Client"})
 */
class InvoiceSubject
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     */
    protected $id;
}

/**
 * @ORM\Entity
 */
class …
Run Code Online (Sandbox Code Playgroud)

php class-table-inheritance symfony doctrine-orm

-2
推荐指数
1
解决办法
1823
查看次数

Laravel 6 上的 Doctrine 安装失败

我对 Laravel 和学说完全陌生,一开始我选择 Laravel 6 并阅读了一些教程。正如我所见,将 Doctrine 与 Laravel 一起使用会更好,然后我尝试将 Doctrine 安装到我的项目中,但不幸的是,它失败了。

是不是因为 Laravel 6 是新的并且还不支持 Doctrine?或者我做错了什么?

我在作曲家上试过这个命令

composer require "laravel-doctrine/orm:1.3.*"
Run Code Online (Sandbox Code Playgroud)

它给了我一些错误,例如

在此处输入图片说明

然后,我尝试遵循 6.x 版的 Laravel 文档,并在数据库部分发现它提到在修改列之前安装学说/dbal

在修改一个列之前,一定要添加到你的 composer.json 文件中的 dotric/dbal 依赖。Doctrine DBAL 库用于确定列的当前状态并创建对列进行指定调整所需的 SQL 查询:

作曲家需要学说/dbal

但是,这个命令也会导致我出现同样的错误。

请指导我走正确的道路。谢谢你。

php doctrine doctrine-orm laravel laravel-6

-2
推荐指数
1
解决办法
646
查看次数

无效参数:查询中未定义令牌帐户

我定义了两个查询构建器。

第一:返回用户的所有帐户。

秒数:按帐户返回所有用户交易。

第一的:

public function getAccountsList($user)
{
    return $this->getAccountRepository()
        ->createQueryBuilder('a')
        ->select('a')
        ->where('a.user = :user')
        ->setParameter('user', $user)
        ->getQuery()
        ->getResult();
}
Run Code Online (Sandbox Code Playgroud)

第二:

 public function  getTransactionsList($user)
{
    $accounts = $this->getAccountsList($user);

    $query = $this->getTransactionRepository()
        ->createQueryBuilder('t')
        ->select('t')
        ->where('t.account IN (:accounts)')
        ->setParameter('account', $accounts)
        ->getQuery()
        ->getResult();

    return $query;
}
Run Code Online (Sandbox Code Playgroud)

第一个工作完美,但第二个抛出错误:

无效参数:查询中未定义令牌帐户

如何修复它?

php query-builder symfony doctrine-orm symfony-3.4

-3
推荐指数
1
解决办法
4415
查看次数