Symfony Database Cookbook: Difference between revisions
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
- Tutorials database:
TutorialandTutorialGroupclasses.
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
- Mastering Symfony2 Performance, Octivi.com
Notes
- ↑ Relationships/Accosciations, Doctrine documentation, Symfony documentation, "The Book"
- ↑ Some Doctrine 2 Best Practices, UVD
#4 By default Doctrine will fetch all of the properties for a given entity