Symfony2: список городов по странам - PullRequest
1 голос
/ 14 марта 2012

У меня есть две таблицы, одна из которых содержит города, а другая - страны.Каждый город связан со страной отношением ManyToOne (через поле country_id) к стране.

Теперь мне нужно сделать так, чтобы список каждой страны формировался из этой базы данных со всеми городами, связанными с ней.

Не могу понять, как построить этот запрос, используя доктрину.

Ответы [ 2 ]

3 голосов
/ 14 марта 2012

Посмотрите на двунаправленную настройку OneToMany

http://docs.doctrine -project.org / projects / doctrine-orm / en / 2.0.x / reference / association-mapping.html #двунаправленная связь «один ко многим»

Вот пример использования аннотаций:

/**
 * @Entity
 * @Table( name="country" )
 */

class Country
{
    /**
     * @Id
     * @Column(type="integer")
     * @GeneratedValue
     */
    public $id;

    /**
     * @Column( type="string", length=30, name="name", nullable=false )
     */
    public $name;

    /**
     * @OneToMany( targetEntity="City", mappedBy="Country" )
     */
    private $cities;
}


/**
 * @Entity
 * @Table( name="city" )
 */
class City
{
    /**
     * @Id
     * @Column(type="integer")
     * @GeneratedValue
     */
    public $id;

    /**
     * @ManyToOne( targetEntity="Country" )
     * @JoinColumn( name="country", referencedColumnName="id" )
     */
    public $country;

    /**
     * @Column(  type="string", length=30, name="name", nullable=false )
     */
    public $name;
}

Вам необходимо настроить это, чтобы метод $country->getCities() работал

2 голосов
/ 14 марта 2012

Добавьте отношение OneToMany к стране между городом и страной, затем:

$country->getCity(); //return all linked cities from city table
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...