#php #mysql #laravel #orm #eloquent
#php #mysql #laravel #orm #eloquent
Вопрос:
Как и в названии, возможно ли достичь чего-то подобного?
class Sign extends Eloquent
{
public function lastStatus()
{
return $this->belongsToMany(Status::class)
->withPivot('timestamp')
->orderBy('timestamp', 'desc')
->take(1);
}
}
Между sign
и status
существует связь «многие ко многим», у меня есть сводная таблица sign_status
. Каждое назначение в sign_status
имеет свое timestamp
значение, поэтому я могу получить информацию о последнем статусе, но как добиться этого в методе модели?
Необходимо сделать это таким образом, потому что тогда я создам запрос типа:
Gantry::whereHas('sign.lastStatus', function($q){...});
И я буду фильтровать по статусу, который является ошибкой, чтобы получить порталы, у которых по крайней мере в одном знаке есть ошибка — но мне нужно искать эту ошибку в последних статусах каждого знака.
Спасибо!
Ответ №1:
Я думаю, что это должно быть $this->hasMany(Status::class)
Комментарии:
1. извините за мое непонимание, я думал, что в данном случае это должно быть
one-to-many
отношение