Scroll down to the script below, click on any sentence (including terminal blocks!) to jump to that spot in the video!Cool, got it! Show me the script!
genus will have many
genus_notes. But, each
genus_note that someone adds
will relate to only one
genus. There are only two possible types of relationships,
and this is by far the most common. It's called a ManyToOne association.
The second type is called a ManyToMany association. To use a different example,
this would be if each
product had many tags, but also each tag related to many
And when it comes to Doctrine relations - don't trust the Internet! Some people
will try to confuse you with other relationships like
OneToOne and some
garbage about unidirectional and bidirectional associations. Gross. Ignore it all.
I guarantee, all of that will make sense really soon.
So your first job is simple: decide if you have a
And it's easy. Just answer this question:
Do either of the sides of the relationship belong to only one of the other?
genus_note belongs to only one
genus, so we have a classic
Forget about Doctrine: just think about the database. If every
belong to exactly one
genus, How would you set that up? You'd probably add a
genus_id column to the
genus_note table. Simple!
Since we need to add a new column to
GenusNote, open that entity class. You probably
feel like you want to add a
$genusId integer property here. That makes sense. But
don't! Instead, add a
$genus property and give it a
ManyToOne annotation. Inside
|... lines 1 - 10|
|... lines 13 - 39|
|... lines 44 - 98|
You can also use the full namespace:
AppBundle\Entity\Genus - and that's required
if the two entities do not live in the same namespace/directory.
Umm, guys? That's it. Relationship finished. Seriously.