Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 13.03.2018 21:15:38

Произвольное условие в отношениях модели

Есть две модели

Ticket
Visit

Между ними в модели Ticket нужно создать отношение один к многим
Они соединяются по полю person_id, имеющемуся в обеих моделях
Но помимо равенства этого поля для связи должны быть выполнены другие условия:
Полe visit_date в модели Visit должно быть между date_from и date_to модели Ticket

Как можно его добавить к отношению

public function visits()
{
    return $this->hasMany('App\Visit', 'person_is', 'person_id'); 
}

То есть я могу написать

return $this->hasMany('App\Visit', 'person_id', 'person_id')->where('visit_date', '2018-03-11');

но как вместо значения подставить поле текущей модели непонятно.

И я даже не знаю, как получить текст запроса этого отношения.

Изменено dimoff (13.03.2018 21:16:34)

Не в сети

#2 14.03.2018 00:05:50

Re: Произвольное условие в отношениях модели

Привет! расскажи немного о логике приложения - что пытаешься сделать? звучит как Visit - это счетчик кол-ва посещений Ticket для каждого пользователя (Person)? это так?


Пишу бэкенд для своего мобильного приложения, делюсь с миром, заходите посмотреть, много всего интересного https://youtu.be/C5M6-ycJ5gs

Не в сети

#3 14.03.2018 00:28:46

Re: Произвольное условие в отношениях модели

Да, допустим Ticket это месячный абонемент, а Visit - отдельные посещения и необходимо получить посещения, укладывающиеся в рамки диапазона дат абонемента.

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

Изменено dimoff (14.03.2018 00:31:28)

Не в сети

#4 21.09.2021 16:27:29

Re: Произвольное условие в отношениях модели

Подскажите как подставить поле текущей модели вместо значения?

Не в сети

Подвал раздела