Отношения Laravel с использованием условия ИЛИ в поле соединенияPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Отношения Laravel с использованием условия ИЛИ в поле соединения

Сообщение Anonymous »


РЕДАКТИРОВАТЬ
Чтобы уточнить: я ищу решение, которое будет работать с быстрой загрузкой и сможет использовать все существующие функции Отношения в Ларавеле. Я знаю, что могу использовать атрибуты доступа и другие обходные пути, но не могу понять, как это сделать и заставить это работать ТОЧНО, как любые другие отношения Laravel.

Есть ли способ создать связь в модели Laravel, используя условие «ИЛИ» для поля, используемого для соединения таблицы при загрузке красноречивой модели?
Пример таблицы: user_connections



Имя
Тип




id
bigInt|primary|auto_increment


from_user_id
bigInt


to_user_id
bigInt


создано_at
метка времени?


updated_at
метка времени?



Если у меня есть модель Laravel с именем UserConnection, которая использует приведенную выше схему таблицы, есть ли способ определить связь с ней модель, которая может использовать либо поле from_user_id ИЛИ поле to_user_id.
Цель состоит в том, чтобы иметь связь с именем userConnections в модели User, которую можно привязать к любому полю.
Пример желаемого синтаксиса:

Код: Выделить всё

class User {
...

// THE RELATIONSHIP METHOD NAME TO USE (DOESN'T HAVE TO BE `hasMany`)
public function userConnections(){
return $this->hasMany(
\App\Models\UserConnection::class, /* THE TARGET CLASS TO BE LOADED */
'from_user_id||to_user_id',        /* JOIN ON EITHER OF THESE FIELDS */
'id'                               /* THE ID OF THE USER IN THIS MODEL */
);
}
Я знаю, что могу сделать это с помощью запроса и загрузить модели вручную. Но я хочу придерживаться формата отношений Laravel, чтобы другие участники этого проекта могли использовать эти отношения естественным образом.
Пожалуйста, не отвечайте, если ваш ответ будет "Не структурируйте базу данных таким образом", потому что я не могу изменить схему. Мне нужно выяснить, как заставить ее работать с этой схемой.
Моя концепция не высечена в камне, как схема, но она должна иллюстрировать то, чего я пытаюсь достичь. Я полностью открыт для любого решения, которое работает с этой схемой базы данных.
Надеюсь, что кто-то еще сталкивался с подобной проблемой и может найти решение.
Заранее спасибо всем, кто дочитал до этого места.

Подробнее здесь: https://stackoverflow.com/questions/782 ... ning-field
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»