morphToMany<R extends KhademModel<R>> method

RelationDefinition<KhademModel> morphToMany<R extends KhademModel<R>>({
  1. required String morphName,
  2. required String pivotTable,
  3. required String foreignPivotKey,
  4. required String relatedPivotKey,
  5. required String relatedTable,
  6. required R factory(),
  7. String parentKey = 'id',
  8. String relatedKey = 'id',
  9. dynamic query(
    1. QueryBuilderInterface
    )?,
})

Define a polymorphic many-to-many relationship.

morphName is the base name used for the type column on the pivot table.

Implementation

RelationDefinition morphToMany<R extends KhademModel<R>>({
  required String morphName,
  required String pivotTable,
  required String foreignPivotKey,
  required String relatedPivotKey,
  required String relatedTable,
  required R Function() factory,
  String parentKey = 'id',
  String relatedKey = 'id',
  Function(QueryBuilderInterface)? query,
}) {
  return RelationDefinition<R>(
    type: RelationType.morphToMany,
    localKey: parentKey,
    foreignKey: '',
    relatedKey: relatedKey,
    relatedTable: relatedTable,
    factory: factory,
    pivotTable: pivotTable,
    foreignPivotKey: foreignPivotKey,
    relatedPivotKey: relatedPivotKey,
    morphTypeField: '${morphName}_type',
    query: query,
  );
}