2017-07-11 6 views
1

私はgorm libを使用しています。そのlibを使用するには、すべての列フィールドをエクスポートする必要があります。このようなものGolangでエクスポートされたフィールドのセッターを実装する方法は?

type myType struct { 
    Id int 
    Name string 
} 

しかし、これで、構造体フィールドの追加ロジックを処理する方法。たとえば、NameフィールドにMrという接頭辞を付ける場合はどうすればよいですか?クライアントは常にmyType.Name = "whatever"を実行できます。 Nameを非公開にしてそれを設定した場合、そのフィールドは決してgormで動作しません。これに対処する任意のgolang方法ですか?

答えて

1

メソッドで非公開フィールドについて理解していることが正しいです。

structフィールドをエクスポートする必要がある場合は、gormにのみアクセスできます。それは行く方法です。

2つのオプションがあります。

オプション1:ゴームコールバックAfterFindを利用する。基本的には、このコールバックを実装する必要があります。あなたがフィールドNameを更新する必要があることを見つけた後。

オプション2:データフェッチメソッドの一部として実装します。発信者に戻る前に、フィールドNameを更新してください。

関連する問題