мои переменные ветки не показывают мне никаких данных из отношения OneToOne Symfony - PullRequest
0 голосов
/ 28 ноября 2018

В моей системе три объекта: Доктор, Планирование и PlanningLine.Врач с графиком и графиком имеет несколько строк графиков (который идет с понедельника по воскресенье).И у меня уже есть данные, хранящиеся в моих таблицах. Таким образом, я бы хотел, чтобы врач на своей странице с подробностями отображал график своего графика дней, когда он доступен или нет.Но когда я делаю свой тест ветки, у меня ничего не отображается на странице.

Планирование объектов

  /**
    * @ORM\OneToMany(targetEntity="Doctix\MedecinBundle\Entity\PlanningLine", mappedBy="planning", cascade={"persist", "remove"})
 * @ORM\JoinColumn(nullable=true)
 */
private $planningLines;

/**
 * @ORM\OneToOne(targetEntity="Doctix\MedecinBundle\Entity\Medecin")
 * @ORM\JoinColumn(nullable=true)
 */
private $medecin;

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

Линия планирования объектов

 class PlanningLine
{
/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var int
 *
 * @ORM\ManyToOne(targetEntity="Doctix\MedecinBundle\Entity\Planning", inversedBy="planningLines", cascade={"persist", "remove"})
 * @ORM\JoinColumn(nullable=true)
 */
private $planning;

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

/**
 * @var string
 *
 * @ORM\Column(name="start_hour", type="string", length=255)
 */
private $startHour;

/**
 * @var string
 *
 * @ORM\Column(name="end_hour", type="string", length=255)
 */
private $endHour;

/**
 * @var bool
 *
 * @ORM\Column(name="isFree", type="boolean")
 */
private $isFree;
}

Entity Doctor

/**
 * @ORM\OneToOne(targetEntity="Doctix\MedecinBundle\Entity\Planning")
 * @ORM\JoinColumn(nullable=true)
 */
private $planning;

Мой взгляд на Twig

    <div class="box_general_3">
                    <div class="indent_title_in">
                        <i class="pe-7s-clock"></i>
                        <h3>DISPONIBILITÉS</h3>
                        <p>Les horaires de disponibilité du medecin.</p>
                    </div>
                    <div class="wrapper_indent">
                        <table class = "table">
                            <thead>
                            <tr>
                                <th>

                                </th>
                                <th>
                                    DEBUT
                                </th>
                                <th>
                                    FIN
                                </th>
                            </tr>
                            </thead> 

                              {%  for plan in medecin.planning %}
                            <tbody>
                            <tr>
                                <td>
                                     {% if plan.planningLines.isFree is defined %}

                                    <strong>{{ plan.planningLines.day }}</strong>

                                </td>
                                <td>
                                    {{ plan.starthour }}
                                </td>
                                <td>
                                    {{ plan.endhour }}
                                </td>



                            </tr>

                                {% else %}

                            <tr class = "unavailable">
                                <td>
                                    <strong>{{ plan.day }}</strong>
                                </td>
                                <td>
                                    {{ plan.starthour }}
                                </td>
                                <td>
                                    {{ plan.endhour }}
                                </td>
                            </tr>
                                        {% endif %}
                            </tbody>
                                    {% endfor %}
                        </table> 

Спасибо

1 Ответ

0 голосов
/ 28 ноября 2018

Вы пытались установить свои отношения и определить fetch = "EAGER" в вашей сущности Доктор?

/**
 * @ORM\OneToOne(targetEntity="Doctix\MedecinBundle\Entity\Planning",mappedBy="medecin",fetch="EAGER")
  */
private $planning;

, а также:

/**
 * @ORM\OneToOne(targetEntity="Doctix\MedecinBundle\Entity\Medecin",inversedBy="planning")
 * @ORM\JoinColumn(nullable=true)
 */
private $medecin;

В противном случае вы можете написать собственный запрос в своем хранилище с объединением на строках планирования и планирования ... Также

/** 

* @ORM \ JoinColumn (nullable = true) * / private $ medecin;

бесполезен, так как joinColumn по умолчанию обнуляется ...

...