Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 选择带有条令的查询_Symfony_Doctrine_Select Query - Fatal编程技术网

Symfony 选择带有条令的查询

Symfony 选择带有条令的查询,symfony,doctrine,select-query,Symfony,Doctrine,Select Query,我试图用条令创建一个select查询,但没有成功。 我有三个表,产品(ID,名称),客户(ID,名称),订单(产品,客户)。 我需要选择并显示客户下的所有订单,以及产品名称。 如何使用条令进行此特定查询? 抱歉,如果这是个老生常谈的问题 产品: <?php namespace Example\Bundle\CrudBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * Product */ class Product { /**

我试图用条令创建一个select查询,但没有成功。 我有三个表,产品(ID,名称),客户(ID,名称),订单(产品,客户)。 我需要选择并显示客户下的所有订单,以及产品名称。 如何使用条令进行此特定查询? 抱歉,如果这是个老生常谈的问题

产品:

<?php
namespace Example\Bundle\CrudBundle\Entity;
use Doctrine\ORM\Mapping as ORM;

/**
 * Product
 */
class Product
{
/**
 * @var string
 */
private $name;

/**
 * @var string
 */
private $prize;

/**
 * @var integer
 */
private $id;


/**
 * Set name
 *
 * @param string $name
 * @return Product
 */
public function setName($name)
{
    $this->name = $name;

    return $this;
}

/**
 * Get name
 *
 * @return string 
 */
public function getName()
{
    return $this->name;
}

/**
 * Set prize
 *
 * @param string $prize
 * @return Product
 */
public function setPrize($prize)
{
    $this->prize= $prize;

    return $this;
}

/**
 * Get prize
 *
 * @return string 
 */
public function getprize()
{
    return $this->prize;
}

/**
 * Get id
 *
 * @return integer 
 */
public function getId()
{
    return $this->id;
}
}

你看过文件了吗

以下是执行选择查询的方式:

<?php
$query = $em->createQuery('SELECT u FROM MyProject\Model\User u WHERE u.age > 20');
$users = $query->getResult();

  • 您可能希望使用$em->getRepository(“ExampleCrudBundle:Product”)->createQueryBuilder('p') ->leftJoin(“p.c类”) ;

  • 你需要阅读更多关于条令的内容,一方面,你不需要为许多关系定义表格,条令会为你做的,另一方面,定义这样的表格是不够的,因为你需要向条令表明存在一个关系:产品-类别

  • 您现在要做的是:

    “给我一个类别为X的产品”,但您的产品实体中没有关于类别的信息


    请阅读“多个”关系以及所有关系。

    向我们展示您定义的实体和关系的代码,以及您如何定义queryDone…很抱歉造成混淆
    <?php
    namespace Example\Bundle\CrudBundle\Entity;
    use Doctrine\ORM\Mapping as ORM;
    
    /**
     * Orders
     */
    class Orders
    {
    /**
     * @var integer
     */
    private $idProduct;
    
    /**
     * @var integer
     */
    private $idIngrediente;
    
    
    /**
     * Set idProduct
     *
     * @param integer $idProduct
     * @return Orders
     */
    public function setIdProduct($idProduct)
    {
        $this->idProduct = $idProduct;
    
        return $this;
    }
    
    /**
     * Get idProduct
     *
     * @return integer 
     */
    public function getIdProduct()
    {
        return $this->idProduct;
    }
    
    /**
     * Set idClient
     *
     * @param integer $idClient
     * @return Orders
     */
    public function setIdClient($idIngrediente)
    {
        $this->idClient= $idClient;
    
        return $this;
    }
    
    /**
     * Get idClient
     *
     * @return integer 
     */
    public function getIdClient()
    {
        return $this->idClient;
    }
    }
    
    class ProductRepository extends EntityRepository
    {
        public function findAllOrderedByName()
        {
            return $this->getEntityManager()
                ->createQuery(
                    'SELECT * FROM ExampleCrudBundle:Product p ORDER BY p.name ASC'
                )
                ->getResult();
        }
    }
    
    
    public function findOneByIdJoinedToCategory($id)
    {
        $query = $this->getEntityManager()
            ->createQuery('
                SELECT p, c FROM ExampleCrudBundle:Product p
                JOIN p.category c
                WHERE p.id = :id'
            )->setParameter('id', $id);
    
        try {
            return $query->getSingleResult();
        } catch (\Doctrine\ORM\NoResultException $e) {
            return null;
        }
    }
    
    <?php
    $query = $em->createQuery('SELECT u FROM MyProject\Model\User u WHERE u.age > 20');
    $users = $query->getResult();