Я относительно новичок в Laravel и только недавно начал узнавать о стремительной загрузке.
В настоящее время у меня есть проект, в котором я должен был разработать приложение для связи между компаниями и партнерами.
Связь может быть либо между компанией-компанией, партнером-партнером или компанией-партнером. На данный момент я сохранил все соединения в одной таблице Connection , как показано здесь :
В классе Connection , я использую polymorphic для извлечения всех соединений для компании / партнера:
public function connectable()
{
return $this->morphTo();
}
И эта функция в Партнер и Компания Классы:
public function my_connection()
{
return $this->morphMany(Connection::class, 'connectable', 'model_type', 'model_id');
}
Я могу получить список соединений просто отлично, но проблема возникает, когда я хочу получить подробную информацию о каждой подключенной компании / партнере. Я хочу использовать нетерпеливую нагрузку в Connection классе, как показано ниже, но он может получить только от компании или партнера, но не от обоих
protected $with = [
'following'
];
public function following()
{
return $this->belongsTo(Company::class, 'connect_to', 'id');
}
Возможно ли это сделать? Или я должен разделить связи между компанией и партнером в разные таблицы?
Редактировать : Под связью я имел в виду, что партнер или компания могут подключаться / следовать друг за другом, как обычное приложение для социальных сетей. Это не было взаимно, хотя. Скажем, если партнер А следует за партнером Б, то будет сохранено только это соединение. Партнер B по-прежнему считается не подключенным к A.