Как получить определенный атрибут сущности, используя идентификатор, хранящийся в другом? - PullRequest
0 голосов
/ 15 апреля 2019

Итак, у меня есть сущность постулатов, которая содержит идентификатор другой, называемой annoncesemplois, я пытаюсь использовать idAnnEmp, сохраненный в постулатах сущностей, и получить заголовок (титр) annoncesemplois из базы данных и отобразить с помощью веточка

Поможет ли учение ManytoMany или другие ассоциации?

/**
 * Annonceemplois
 *
 * @ORM\Table(name="annonceemplois", indexes={@ORM\Index(name="FK_ANNONCEEMPLOIS_idUser", columns={"idUser"})})
 * @ORM\Entity
 */
class Annonceemplois
{
    /**
     * @var integer
     *
     * @ORM\Column(name="IDANNEMP", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $idannemp;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="DATECREATION", type="date", nullable=true)
     */
    private $datecreation;

    /**
     * @var float
     *
     * @ORM\Column(name="PRIX", type="float", precision=10, scale=0, nullable=true)
     */
    private $prix;

    /**
     * @var string
     *
     * @ORM\Column(name="TITRE", type="string", length=255, nullable=true)
     */
    private $titre;

    /**
     * @var string
     *
     * @ORM\Column(name="DESCRIPTION", type="string", length=255, nullable=true)
     */
    private $description;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="DUREE", type="date", nullable=true)
     */
    private $duree;

    /**
     * @var integer
     *
     * @ORM\Column(name="idUser", type="integer", nullable=true)
     * 
     */
    private $iduser;
/**
 * Postulation
 *
 * @ORM\Table(name="postulation", indexes={@ORM\Index(name="FK_POSTULATION_id", columns={"id"}), @ORM\Index(name="FK_POSTULATION_idAnnEmp", columns={"idAnnEmp"})})
 * @ORM\Entity
 */
class Postulation
{
    /**
     * @var integer
     *
     * @ORM\Column(name="IDPOSTULATION", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $idpostulation;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="DATEPOSTULATION", type="date", nullable=true)
     */
    private $datepostulation;

    /**
     * @var string
     *
     * @ORM\Column(name="ETAT", type="string", length=255, nullable=true)
     */
    private $etat;

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=true)
     */
    private $id;

    /**
     * @var integer
     *
     * @ORM\Column(name="idAnnEmp", type="integer", nullable=true)
     */
    private $idannemp;

Здесь я пытаюсь показать это

<div class="row">
                <div class="col-md-9">

                    <div class="panel panel-default">
                        <div class="panel-body posts">

                            <div class="row">
                                <div class="col-md-6">
                                    {% for post in postulations %}
                                    <div class="post-item">
                                        <div class="post-title">
                                           {{ post.idannemp.titre }}
                                        </div>
                                        <div class="post-date"><span class="fa fa-calendar"></span> {{ post.datepostulation | date }} / {{ post.etat }}</div>
                                    </div>
                                    {% endfor %}
                                </div>

                            </div>

                        </div>
                    </div>
                </div>
            </div>

Ответы [ 2 ]

0 голосов
/ 15 апреля 2019

Как насчет этого решения:

class Annonce 
{
    /**
     * @ORM\OneToMany(targetEntity="Postulation", mappedBy="annonce")
     *
     */
    private $postulations;

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

class Postulation
{
   /**
    *@ORM\ManyToOne(targetEntity="Annonce", inversedBy="postulations")
    *@ORM\JoinColumn(name="annonce_id", referencedColumnName="id")
    */
    private $annonce;
}

в ветке вы можете использовать это:

<div class="row">
                <div class="col-md-9">

                    <div class="panel panel-default">
                        <div class="panel-body posts">

                            <div class="row">
                                <div class="col-md-6">
                                    {% for post in postulations %}
                                    <div class="post-item">
                                        <div class="post-title">
                                           {{ post.annonce.titre }}
                                        </div>
                                        <div class="post-date"><span class="fa fa-calendar"></span> {{ post.datepostulation | date }} / {{ post.etat }}</div>
                                    </div>
                                    {% endfor %}
                                </div>

                            </div>

                        </div>
                    </div>
                </div>
            </div>
0 голосов
/ 15 апреля 2019

Вы можете использовать Отношения, чтобы получить Связанные объекты.Например:

В Postulations.php добавьте отношение oneToMany и инициализируйте поле:

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

/**
 * @ORM\OneToMany(targetEntity="App\Entity\Annonceemplois", 
 mappedBy="postulation")
 */
    private $annonceemplois;

В Annonceemplois.php

/**
 * @ORM\ManyToOne(targetEntity="App\Entity\Postulation", 
 inversedBy="annoceemplois")
 */
    private $postulation;
...