кнопка нравится / не нравится с Symfony 3 - PullRequest
0 голосов
/ 23 ноября 2018

В моем пространстве для пациентов есть список врачей, с которыми он записался на прием. И рядом с каждым врачом я хочу добавить понравившуюся мне кнопку, чтобы пациент мог определить, понравилась ли ему консультация или нет.доктор.И мне хотелось бы узнать количество пациентов, которым понравился данный врач.Чтобы этот номер отображался в данных врача.

Вот мой контроллер, где у меня есть список врачей

Контроллер

 public function patientBookingListAction(Request $request)
{

    $em  = $this->getDoctrine()->getManager();

    $medecin = $em->getRepository("DoctixMedecinBundle:Medecin")->findOneBy(array(
        'user' => $this->getUser(),
    ));

    $patient = $em->getRepository("DoctixPatientBundle:Patient")->findOneBy(array(
        'user' => $this->getUser(),
    ));

    $bookings = $em->getRepository("DoctixFrontBundle:Booking")->findBy(array(
        "patient" => $patient
    ));

    $bookings = $this->get('knp_paginator')->paginate($bookings, $request->query->get('page', 1), 3);


    return $this->render('DoctixPatientBundle:Patient:bookings.html.twig', array(
        'bookings' => $bookings
    ));
}

Я уже создал свою таблицу favour_doctor:

Entity favour_doctor

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


/**
 * @ORM\ManyToOne(targetEntity="Doctix\PatientBundle\Entity\Patient", inversedBy="medecin_favoris")
 * @ORM\JoinColumn(name="patient_id", referencedColumnName="id")
 */
private $patient;

   /**
 * @ORM\ManyToOne(targetEntity="Doctix\MedecinBundle\Entity\Medecin", inversedBy="medecin_favoris")
 * @ORM\JoinColumn(name="medecin_id", referencedColumnName="id")
 */
private $medecin;



/**
 * Get id
 *
 * @return integer
 */
public function getId()
{
    return $this->id;
}

/**
 * Set patient
 *
 * @param \Doctix\PatientBundle\Entity\Patient $patient
 *
 * @return MedecinFavoris
 */
public function setPatient(\Doctix\PatientBundle\Entity\Patient $patient = null)
{
    $this->patient = $patient;

    return $this;
}

/**
 * Get patient
 *
 * @return \Doctix\PatientBundle\Entity\Patient
 */
public function getPatient()
{
    return $this->patient;
}

/**
 * Set medecin
 *
 * @param \Doctix\MedecinBundle\Entity\Medecin $medecin
 *
 * @return MedecinFavoris
 */
public function setMedecin(\Doctix\MedecinBundle\Entity\Medecin $medecin = null)
{
    $this->medecin = $medecin;

    return $this;
}

/**
 * Get medecin
 *
 * @return \Doctix\MedecinBundle\Entity\Medecin
 */
public function getMedecin()
{
    return $this->medecin;
}
 }

Я хотел бы, чтобы, когда я нажимаю на кнопку, мои данные сохраняются в этой таблице..

Веточка

  {% for booking in bookings %}
        <div class="list_general" id="liste">
            <a href="#0" class="wish_bt"></a>
            <ul>
                <li>
                    <figure><img src="{{ vich_uploader_asset(booking.medecin.media, 'imageFile') }}"
                                                         alt="{{ booking.medecin.media.imagename }}"></figure>
                    <h4>Dr. {{ booking.medecin.user.prenom|capitalize }} {{ booking.medecin.user.nom|upper }} <i class="pending">Pending</i></h4>
                     <ul class="booking_details">
                        <li><strong>Date et heure</strong>{{ booking.dateHeureRdv|date('d/m/Y') }}</li>
                        <li><strong>Heure</strong>{{ booking.dateHeureRdv|date('H:i') }}</li>
                        <li><strong>Motif</strong>Consultation</li>
                        <li><strong>Téléphone</strong>{{ booking.medecin.user.numTel }}</li>
                        <li><strong>Email</strong>{{ booking.medecin.user.username }}</li>
                    </ul>
                    <ul class="buttons">
                        <li><a href="{{ path('patient_booking_deplacer', {'id': booking.id}) }}?medecin={{ booking.medecin.id }}" class="btn_1 gray approve"><i class="fa fa-fw fa-check-circle-o"></i> Déplacer Rdv</a></li>
                        <li><a href="{{ path('patient_booking_annuler', {'id': booking.id}) }}" class="btn_1 gray delete"><i class="fa fa-fw fa-times-circle-o"></i> Annuler</a></li>
                    </ul>
                </li>
                <div class="like">
                <a href="#" class="fa fa fa-thumbs-up">Like</a>
                </div>  
                </ul>

        </div>
    {% endfor %}    

Теперь я не знаю точно, что делать, когда нажимаю кнопку «Нравится».Зная, что когда пациенту нравится, данные должны регистрироваться в базе данных, и кнопка «Мне нравится» также должна исчезать, чтобы больше не позволять ему голосовать два или более раз.

Большое спасибо

...