ModelRelationships extension

Relationship resolution helpers attached to Model.

These helpers resolve related models using conventional foreign-key naming derived from model table names.

Foreign key behavior depends on the selected DatabaseDisk:

  • file and s3 use <model>_uuid keys
  • sqlite and pgsql use <model>_id keys

Example:

final profile = await user.hasOne<Profile>();
final posts = await user.hasMany<Post>();
on

Methods

belongsToMany<T extends Model>({required PivotTable<Model, Model> table, DatabaseDisk disk = Model.defaultDisk}) Future<List<T>>

Available on Model, provided by the ModelRelationships extension

Resolves many-to-many related models through a pivot table.
belongsToOne<T extends Model>({DatabaseDisk disk = Model.defaultDisk}) Future<T?>

Available on Model, provided by the ModelRelationships extension

Resolves the parent model for an inverse relationship.
hasMany<T extends Model>({DatabaseDisk disk = Model.defaultDisk}) Future<List<T>>

Available on Model, provided by the ModelRelationships extension

Resolves all one-to-many related models.
hasOne<T extends Model>({DatabaseDisk disk = Model.defaultDisk}) Future<T?>

Available on Model, provided by the ModelRelationships extension

Resolves a one-to-one related model.