标签: doctrine-orm

如何使用Doctrine将变量传递给Orderby子句

我在尝试ORDER BY使用Doctrine 2 ORM 在DQL的子句中实现动态排序时遇到错误.

这是我的代码片段:

$queryBuilder = $categoryEntity->createQueryBuilder('category');

$queryBuilder->distinct();
$queryBuilder->join('Category\Entity\CategoryName', 'category_name', 'WITH', 'category.id = category_name.category');


if($column == 'status'){
    $queryBuilder->orderBy("category.status $order");
}else{
    $queryBuilder->orderBy("category_name.name $order");
}
Run Code Online (Sandbox Code Playgroud)

这会产生以下错误:

[语法错误]第0行,第189列:错误:字符串的预期结束,得到'ASC'

doctrine-orm

0
推荐指数
1
解决办法
1455
查看次数

Doctrine:自定义实体存储库

构建自定义实体存储库时遇到一些问题.

尝试自定义实体存储库时,我有以下致命错误

Fatal error: Uncaught exception 'BadMethodCallException' with message 'Undefined method 'getByParentId'. The method name must start with either findBy or findOneBy!' in C:\Users\user\Desktop\projects\interview\application\libraries\Doctrine\ORM\EntityRepository.php:215 Stack trace: #0 C:\Users\user\Desktop\projects\interview\application\controllers\CommentController.php(58): Doctrine\ORM\EntityRepository->__call('getByParentId', Array) #1 C:\Users\user\Desktop\projects\interview\application\controllers\CommentController.php(58): Doctrine\ORM\EntityRepository->getByParentId('1') #2 [internal function]: CommentController->viewCommentsListByParentId('1') #3 C:\Users\user\Desktop\projects\interview\system\core\CodeIgniter.php(359): call_user_func_array(Array, Array) #4 C:\Users\user\Desktop\projects\interview\index.php(203): require_once('C:\Users\user\D...') #5 {main} thrown in C:\Users\user\Desktop\projects\interview\application\libraries\Doctrine\ORM\EntityRepository.php on line 215
Run Code Online (Sandbox Code Playgroud)

我的项目结构是Mappings Repositories Entities Proxies模型

我的doctrine.php有这样的存储库加载器

// load the repositories
$repositoryClassLoader = new \Doctrine\Common\ClassLoader('Repositories', APPPATH.'models');
$repositoryClassLoader->register();
Run Code Online (Sandbox Code Playgroud)

我的模型类有以下声明

namespace Entities;

use Doctrine\ORM\Mapping as ORM;

/**
 * Entities\Comment
 * @Entity (repositoryClass="Repositories\CommentRepository") …
Run Code Online (Sandbox Code Playgroud)

php codeigniter repository-pattern doctrine-orm

0
推荐指数
1
解决办法
5129
查看次数

Symfony + Doctrine + Annotation验证不适用于表单

我在我的实体定义中使用doctrine注释来定义每个变量行为,即:

@ORM\Column(type="string", length=50, nullable=false)
Run Code Online (Sandbox Code Playgroud)

如果我提交表单,将该字段留空,则通过验证,但是(对于corse)我收到有关INSERT语句的错误,因为他无法插入NULL值.这怎么可能?

forms validation annotations symfony doctrine-orm

0
推荐指数
1
解决办法
4425
查看次数

Symfony2表单query_builder - 允许null

在Symfony2表单中,当试图获取实体时,Symfony期望接收QueryBuilder对象,但有时没有返回实体.在这种情况下,会出现一条错误消息:

期望类型为"Doctrine\ORM\QueryBuilder"的参数,给出"NULL"

如何使query_builder允许选项没有可用的实体.

$builder
    ->add('client', 'entity', array(
        'class'         => 'Faktura\FakturaBundle\Entity\Client',
        'query_builder' => function(\Web\MyBundle\Repository\ClientRepository $er) use ($company){
            return $er->getClients($company);
    ))
;
Run Code Online (Sandbox Code Playgroud)

ClientRepository.php

public function getClients($company)
{
    $qb = $this->createQueryBuilder('c')
        ->select('c')
        ->where('c.company = :company')
        ->setParameter('company', $company)
        ->getQuery();

    return $qb->getResult();
}
Run Code Online (Sandbox Code Playgroud)

实际上,它只是基本$er->findBy(array('company' => $company))方法,但我使用自定义getClients()方法

query-builder symfony-forms symfony doctrine-orm

0
推荐指数
1
解决办法
1591
查看次数

Composer无法使用zfc-user-doctrine-orm进行更新

我有以下内容 composer.json

{
    "name": "zendframework/skeleton-application",
    "description": "Skeleton Application for ZF2",
    "license": "BSD-3-Clause",
    "keywords": [
        "framework",
        "zf2"
    ],
    "homepage": "http://framework.zend.com/",
    "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "2.2.*",
        "doctrine/doctrine-orm-module": "*",
        "bjyoungblood/bjy-authorize": "1.2.*",
        "zf-commons/zfc-user": "dev-master",
        "zendframework/zend-developer-tools": "*",
        "zendframework/zftool": "dev-master",
        "swiftmailer/swiftmailer" : "*",
        "mwillbanks/zfc-twitter-bootstrap": "*"
    }
}
Run Code Online (Sandbox Code Playgroud)

添加require后zf-commons/zfc-user-doctrine-orm,Composer无法执行命令,composer update给出大错误消息:

composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
- Installation request for …
Run Code Online (Sandbox Code Playgroud)

doctrine-orm zend-framework2 composer-php zfcuser

0
推荐指数
1
解决办法
1056
查看次数

作为准备陈述的学说dbal querybuilder

我正在尝试创建一个Doctrine DBAL querybuilder对象并在其中设置一个参数.(使用postgres db,dbal 2.3.4,学说

$connection = $this->_em->getConnection();
$qb = $connection->createQueryBuilder();
$qb->select('tbl_user_contract.pkid AS pkid');
$qb->from('tbl_user_contract', 'tbl_user_contract');
$qb->join('tbl_user_contract', 'tbl_user', 'tbl_user', 'tbl_user_contract.fk_user = tbl_user.pkid');
$qb->where('tbl_user.pkid = :userid');
$qb->setParameter(':userid', 10);
Run Code Online (Sandbox Code Playgroud)

当我尝试获取此querybuilder对象的结果时,我收到以下错误:

SQLSTATE[08P01]: <<Unknown error>>: 7 ERROR: bind message supplies 0 parameters, 
but prepared statement "pdo_stmt_00000002" requires 1
Run Code Online (Sandbox Code Playgroud)

当我检查postgres日志时,我看到传递的查询,我注意到它需要一个参数,但我不会传入参数.

我尝试在where表达式本身设置id(不使用预处理语句),这是有效的.但我真的想让这个准备好的陈述.

谁知道如何解决这个问题?

提前致谢

php postgresql doctrine symfony doctrine-orm

0
推荐指数
1
解决办法
4439
查看次数

Doctrine2&zf2:fetchAll()结果为JSON,将结果转换为数组,然后转换为ZF2中的json

我完全是Doctrine和ZF2的新手,来自C#env.从几天开始学习教义和zf2.并尝试学习基本的东西,以便我可以 在未来几天内构建RESTFull服务API.现在,我试图将原则获取All()结果输入到json但未能这样做.mys API客户端(backbone.js)工作正常,它是结果,但显示空对象

我的控制器代码是这样的

 public function getList() {

        $repository = $this->getEntityManager()->getRepository('Application\Entity\Test');

        $posts = $repository->findAll();

      echo var_dump((array)$posts);

      header('Access-Control-Allow-Origin:http://api.server.com');

     return new JsonModel($posts);
    }
Run Code Online (Sandbox Code Playgroud)

var_dump结果

array(2) {
      [0]=>
      object(Application\Entity\Test)#339 (2) {
        ["id":"Application\Entity\Test":private]=>
        int(2)
        ["name":"Application\Entity\Test":private]=>
        string(5) "Kumar"
      }
      [1]=>
      object(Application\Entity\Test)#340 (2) {
        ["id":"Application\Entity\Test":private]=>
        int(1)
        ["name":"Application\Entity\Test":private]=>
        string(8) "Panindra"
      }

    }
Run Code Online (Sandbox Code Playgroud)

而我的JSONModel输出是[{},{}].

我想将其构建为RESTFull服务

json zend-framework doctrine-orm zend-framework2

0
推荐指数
1
解决办法
3888
查看次数

Symfony 2.3/Doctrine2个人翻译无法在Sonata Admin中使用TranslatedFieldType.php

我目前正在研究一个带有doctrine2的symfony2.3项目,试图在Sonata后端实现个人翻译管理.

翻译基于doctrine2可翻译行为模型:https://github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/translatable.md ,更准确地说是个人翻译.

管理表单使用的是TranslatedFieldType.php的symfony2.3版本.

我的实体类如下:

<?php
namespace Hr\OnlineBundle\Entity;

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

/**
 * @ORM\Entity
 * @Gedmo\TranslationEntity(class="Hr\OnlineBundle\Entity\CategoryTranslation")
 */
class Category
{
    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue
     */
    private $id;

    /**
     * @Gedmo\Translatable
     * @ORM\Column(length=64)
     */
    private $title;

    /**
     * @Gedmo\Translatable
     * @ORM\Column(type="text", nullable=true)
     */
    private $description;

    /**
     * @ORM\OneToMany(
     *   targetEntity="CategoryTranslation",
     *   mappedBy="object",
     *   cascade={"persist", "remove"}
     * )
     */
    private $translations;

    public function __construct()
    {
        $this->translations = …
Run Code Online (Sandbox Code Playgroud)

behavior symfony doctrine-orm sonata-admin symfony-2.3

0
推荐指数
1
解决办法
3957
查看次数

使用Doctrine 2的吸气剂和二传手

我有一个实体即Users.我想在Doctrine中创建这个实体的getter和setter,以便Doctrine可以读取它.

我怎么能这样做,有人能为我提供基本的例子吗?我是初学者

如何在此数据库表中插入数据?

这是我的用户实体

<?php
 /**
 * @Entity
 * @Table(name="users")
 * Total Number of Columns : 32
 */
class Users{

/* Attributes of Users */

     /** 
     * @Id 
     * @Column(type="integer") 
     * @GeneratedValue
     * @dummy
     * @Assert\NotEmpty
     */
       private $id;

     /** 
     * @Column(type="string")
     * @Assert\NotEmpty
     */
       private $name;


     /** 
     * @Column(type="string")
     * @Assert\NotEmpty
     */
       private $email;

}

?>
Run Code Online (Sandbox Code Playgroud)

doctrine symfony doctrine-orm

0
推荐指数
1
解决办法
3317
查看次数

如何在symfony2中删除日期时间错误?

我在symfony2中创建一个实体,我将实体设置为createddatetime和updateddatetime,但是当我在控制器中使用setter时,错误发生在这样

FatalErrorException: Error: Call to a member function format() on a non-object in C:\wamp\www\QuickBacklog\vendor\doctrine\dbal\lib\Doctrine\DBAL\Types\DateTimeType.php line 44
Run Code Online (Sandbox Code Playgroud)

这是我的实体代码:

/**
     * Set createdDatetime
     *
     * @param \DateTime $createdDatetime
     * @return Sections
     */
    public function setCreatedDatetime($createdDatetime)
    {
        $this->createdDatetime = $createdDatetime;

        return $this;
    }

    /**
     * Get createdDatetime
     *
     * @return \DateTime 
     */
    public function getCreatedDatetime()
    {
        return $this->createdDatetime;
    }

    /**
     * Set updatedDatetime
     *
     * @param \DateTime $updatedDatetime
     * @return Sections
     */
    public function setUpdatedDatetime($updatedDatetime)
    {
        $this->updatedDatetime = $updatedDatetime;

        return $this;
    }

    /** …
Run Code Online (Sandbox Code Playgroud)

php doctrine symfony doctrine-orm

0
推荐指数
1
解决办法
2305
查看次数