Symfony Database Cookbook: Difference between revisions

From Littledamien Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 77: Line 77:
</syntaxhighlight>
</syntaxhighlight>


== See also ==
* [http://labs.octivi.com/mastering-symfony2-performance-doctrine/ Mastering Symfony2 Performance], Octivi.com
== Notes ==
== Notes ==
<references/>
<references/>

Revision as of 11:44, 12 February 2015


Creating classes with Doctrine

A command line shortcut for the process of creating an entity class described in Generating Database Tables and/or Schema:

$ php app/console doctrine:generate:entity --entity="AppBundle:Category" --fields="name:string(100)"

Specifying foreign keys between tables

First create a property within the category/group/type class that will hold the records linked to it.[1]

// src/AppBundle/Entity/Category.php

// ...
use Doctrine\Common\Collections\ArrayCollection;

class Category
{
	// ...

	/**
	 * @ORM\OneToMany(targetEntity="Product", mappedBy="category")
	 */
	protected $products;

	public function __construct()
	{
		$this->products = new ArrayCollection();
	}
}

Then add a property in the other class to reference the category/group/type class:

// src/AppBundle/Entity/Product.php

// ...
class Product
{
	// ...

	/**
	 * @ORM\ManyToOne(targetEntity="Category", inversedBy="products")
	 * @ORM\JoinColumn(name="category_id", referencedColumnName="id")
	 */
	protected $category;
}

Have Doctrine generate getter and setter methods:

$ php app/console doctrine:generate:entities Acme

Examples

Selectively retrieving object properties

By default Doctrine retrieves all the properties for an object.[2]

$qb = $em->createQueryBuilder();

// You can select multiple properties in the partial statement
$qb
    ->select('partial Article.{id,title,summary}')
    ->from('Entity\Article')
;

See also

Notes

  1. Relationships/Accosciations, Doctrine documentation, Symfony documentation, "The Book"
  2. Some Doctrine 2 Best Practices, UVD
    #4 By default Doctrine will fetch all of the properties for a given entity