Laravel 6.2: я получаю один и тот же идентификатор из разных данных в методе index () - PullRequest
1 голос
/ 11 февраля 2020

Я работаю с Laravel, и мне нужно получить резервирование из моей базы данных.

Я использую конструктор запросов:

 public function getReservation($date)
    {
        $reservations = DB::table('reservations')
                        ->select('*')
                        ->join('agendas', 'reservations.agenda_id', '=', 'agendas.id')
                        ->whereDate('arrivee', $date)
                        ->get();

        return response($reservations);
    }

Все хорошо, за исключением того, что у меня то же самое Идентификатор для другого ресурса, и я не знаю почему?

ответ:

[
    {
        "id": 1,
        "created_at": "2020-02-07 12:30:28",
        "updated_at": "2020-02-07 12:30:28",
        "arrivee": "2020-02-12 13:00:00",
        "nbre_client": 4,
        "num_table": null,
        "remarque": null,
        "venu": 0,
        "formule": 0,
        "agenda_id": 1,
        "user_id": 1,
        "nom_client": "Stark",
        "prenom_client": null,
        "num_phone_client": "0658180058",
        "email_client": null,
        "confirmResa": null,
        "nameAg": "London"
    },
    {
        "id": 1,
        "created_at": "2020-02-07 12:30:28",
        "updated_at": "2020-02-07 12:30:28",
        "arrivee": "2020-02-12 13:30:00",
        "nbre_client": 2,
        "num_table": null,
        "remarque": null,
        "venu": 0,
        "formule": 0,
        "agenda_id": 1,
        "user_id": 1,
        "nom_client": "Banner",
        "prenom_client": null,
        "num_phone_client": "0658180058",
        "email_client": null,
        "confirmResa": null,
        "nameAg": "London"
    }
]

Идентификаторы в моей базе данных разные (соответственно 2 и 3)

Любые идеи кто-то?

1 Ответ

1 голос
/ 11 февраля 2020

Решение

Дублированные идентификаторы - это, скорее всего, идентификаторы из вашего agendas, поскольку они принадлежат к одной повестке дня.

Вы можете изменить свой выбор на:

->select('reservations.*')

Eloquent Way

Вы также можете выполнить sh то, что у вас есть с Eloquent.

Во-первых, вам нужно убедиться, что ваша модель Reservation имеет отношение BelongsTo с Ваша Agenda модель.

public function agenda()
{
    return $this->belongsTo(Agenda::class);
}

Тогда вы можете запросить ее следующим образом:

Reservation::whereHas('agenda', function ($query) use ($date) {
    $query->whereDate('arrivee', $date);
})->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...