2017-06-29 4 views
0

私はlib github.com/ipfans/echo-sessionを使用しています。私はこの私のコードセット配列の構造体にアレイ構造体をゴランのセッションに設定する

をセッションを保存することができます

保存セッションは、セッション

session := session.Default(c) 
fmt.Println(session.Get("test")) 

から入手コンソール結果表示空

+0

セッションが正しく保存されていない可能性がありますか?この理論を確認する値を設定し、その直後に値を取得します。 – jeevatkm

+0

"すぐにそれを取得する" - > OK、正しく保存されたセッション – cuong

+0

"セッションが正しく保存されていない可能性がありますか?"あなたの 'session.Save()'呼び出しがうまくいかないことを意味します。内部で使用しているライブラリは、ゴリラセッションライブラリを使用しています。したがって、セッションオブジェクトに構造体を格納するためのゴリラセッションのドキュメンテーションをチェックする方が良いでしょう。 – jeevatkm

答えて

0

ライブラリに

type StaffInfor struct { 
    Login_id   string 
    Family_name_cc string 
    First_name_cc string 
    Family_name_kana string 
    First_name_kana string 
    Role_id  int 
    Password  string 
    Message_invalid []string 
} 
~~~ 
session := session.Default(c) 
session.Set("test", listStaffInfor)// listStaffInfor is array struct StaffInfor 
session.Save() 

github.com/ipfans/echo-sessionです内部でgithub.com/gorilla/sessionsを使用します。

ゴリラセッションオブジェクトは、encoding/gobパッケージを使用してシリアル化されています。したがって、セッション内に複雑なデータ型を格納するには、structを登録する必要があります。

type StaffInfor struct { 
    Login_id   string 
    Family_name_cc string 
    First_name_cc string 
    Family_name_kana string 
    First_name_kana string 
    Role_id   int 
    Password   string 
    Message_invalid []string 
} 

type ListStaffInfor []StaffInfor 

func init() { 
    gob.Register(&StaffInfor{}) 
    gob.Register(&ListStaffInfor{}) 
} 

注:クッキーベースのセッションを使用している場合、それはあなたがクッキーのサイズ制限4キロバイトを打つ可能性があるため、セッションに大きなオブジェクトを格納することをお勧めされていません。

+0

ありがとうございました!私はセッションでデータを見ましたが、キャストするときにデータを取得しませんでした。私のコード:listStaffInfor:= session.Get( "ListStaffInfor")。([] StaffInfor) – cuong

+0

タイプアサーションが失敗すると、通常はエラーが発生します。あなたは何を得ているのですか? – jeevatkm