Closed leopku closed 4 weeks ago
See https://github.com/leopku/kodtest/blob/b2389ba401a69b0343de2ca89d1e2c85dcc0f031/cmd/demo2.go#L43
type demo2Impl struct { kod.Implements[Demo2] kod.LazyInit migrate kod.Ref[migrate.IMigrate] } ... Run: func(cmd *cobra.Command, args []string) { fmt.Println("demo2 called") err := kod.Run(context.Background(), func(ctx context.Context, ins *app) error { // pp.Println(ins.demo2.Get()) demo2Ins := ins.demo2.Get() demo2Ins.migrate.Get().Hello() <-- this line return nil }, kod.WithOpenTelemetryDisabled()) cobra.CheckErr(err) },
demo2Ins.migrate undefined (type Demo2 has no field or method migrate, but does have Migrate)
ins.demo2.Get() returns interface migrate.IMigrate, so we cannot get migrate directly. You should call migrate object in Migrate() function, like what I commited.
migrate.IMigrate
See https://github.com/leopku/kodtest/blob/b2389ba401a69b0343de2ca89d1e2c85dcc0f031/cmd/demo2.go#L43