В моем приложении 3 типа авторов. В таблице автора сообщения, хранящегося в столбце post_author, например "AuthorType_id", где AuthorType может быть пользователем, группой или системой.
Вопрос: могу ли я создать условное отношение?
Что это значит? .
Relation author () проверяет значение и возвращает связанную модель. Данные в столбцах хранятся как «user_123», «system_123», «group_123», где user, system или group - AuthorType, а 123 - идентификатор записи в связанной таблице.
Я действительно запутался в этом случае. Я использую laravel 6.
Пример:
public function author() {
$type = explode("_", $this->post_author);
switch($type[0]) {
case "user":
return $this->hasOne('App\User', 'id', $type[1]);
case "group":
return $this->hasOne('App\UserGroup', 'id', $type[1]);
default:
return $this->hasOne('App\BluePoster', 'id', $type[1]);
}
}