php エディタ Zimo は、Go 言語を使用した開発中に一般的なエラー「Go エラー: time.Time は driver.Valuer を実装していません (メソッド Value is missing) )」に遭遇することがあります。このエラーは通常、time.Time 型の値をデータベースに保存するときに発生します。これは、time.Time 型が driver.Valuer インターフェイスを実装しておらず、Value メソッドが欠落していることを示しています。この問題を解決するには、新しい時間タイプをカスタマイズするか、サードパーティのライブラリを使用して時間タイプのストレージを処理するなど、さまざまな方法があります。この記事では、開発者がこの問題をよりよく理解して解決できるように、このエラーの原因と解決策を詳しく紹介します。
私は、setup.sh スクリプトを使用して作成した SQLite3 データベースから sqlboiler を使用してコードを生成する Go プロジェクトに取り組んでいます。解決できないエラーが発生しました。エラーメッセージは次のとおりです:
リーリーこのエラーは、graph/db/repositories.go ファイルの time.Time 値を使用しようとすると発生します。私のプロジェクトには golang:1.21-alpine3.18 Docker イメージを使用しています。
SQLite3 データベースのリポジトリ テーブルの created_at 列の型を変更しようとします。 TEXT および TIMESTAMP データ型を使用してテストしましたが、エラーは解決しません。
このエラーの原因と修正方法を知っている人はいますか?
repositories.go
リーリーsetup.sh
リーリーsqlボイラー.toml
リーリー ###環境###graph/db/repositories.go:998:23: cannot use o.CreatedAt (variable of type string) as driver.Valuer value in argument to queries.MustTime: string does not implement driver.Valuer (missing method Value) graph/db/repositories.go:999:23: cannot use &o.CreatedAt (value of type *string) as sql.Scanner value in argument to queries.SetScanner: *string does not implement sql.Scanner (missing method Scan)
次に、CreatedAt 値を設定します:
リーリー以上がGo エラー: time.Time は driver.Valuer を実装していません (メソッドの値が欠落しています)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。