github.com/Ali-iotechsys/sqlboiler/v4@v4.0.0-20221208124957-6aec9a5f1f71/templates/main/06_relationship_to_many.go.tpl (about)

     1  {{- if or .Table.IsJoinTable .Table.IsView -}}
     2  {{- else -}}
     3  	{{- range $rel := .Table.ToManyRelationships -}}
     4  		{{- $ltable := $.Aliases.Table $rel.Table -}}
     5  		{{- $ftable := $.Aliases.Table $rel.ForeignTable -}}
     6  		{{- $relAlias := $.Aliases.ManyRelationship $rel.ForeignTable $rel.Name $rel.JoinTable $rel.JoinLocalFKeyName -}}
     7  		{{- $schemaForeignTable := .ForeignTable | $.SchemaTable -}}
     8  		{{- $canSoftDelete := (getTable $.Tables .ForeignTable).CanSoftDelete $.AutoColumns.Deleted}}
     9  // {{$relAlias.Local}} retrieves all the {{.ForeignTable | singular}}'s {{$ftable.UpPlural}} with an executor
    10  {{- if not (eq $relAlias.Local $ftable.UpPlural)}} via {{$rel.ForeignColumn}} column{{- end}}.
    11  func (o *{{$ltable.UpSingular}}) {{$relAlias.Local}}(mods ...qm.QueryMod) {{$ftable.DownSingular}}Query {
    12  	var queryMods []qm.QueryMod
    13  	if len(mods) != 0 {
    14  		queryMods = append(queryMods, mods...)
    15  	}
    16  
    17  		{{if $rel.ToJoinTable -}}
    18  	queryMods = append(queryMods,
    19  		{{$schemaJoinTable := $rel.JoinTable | $.SchemaTable -}}
    20  		qm.InnerJoin("{{$schemaJoinTable}} on {{$schemaForeignTable}}.{{$rel.ForeignColumn | $.Quotes}} = {{$schemaJoinTable}}.{{$rel.JoinForeignColumn | $.Quotes}}"),
    21  		qm.Where("{{$schemaJoinTable}}.{{$rel.JoinLocalColumn | $.Quotes}}=?", o.{{$ltable.Column $rel.Column}}),
    22  	)
    23  		{{else -}}
    24  	queryMods = append(queryMods,
    25  		qm.Where("{{$schemaForeignTable}}.{{$rel.ForeignColumn | $.Quotes}}=?", o.{{$ltable.Column $rel.Column}}),
    26  	)
    27  		{{end}}
    28  
    29  	return {{$ftable.UpPlural}}(queryMods...)
    30  }
    31  
    32  {{end -}}{{- /* range relationships */ -}}
    33  {{- end -}}{{- /* if isJoinTable */ -}}