我的用戶在Doctrine中設置了一些關係,但其中一個似乎造成了很多問題,每個用戶都可以擁有多個成員資格,並且每個成員資格都具有成員資格類型。用戶關係正在破壞我在Symfony2中的會話
由於某些原因,但是當我加載這些會員資格時,它似乎在加劇我的會話,我登錄並顯示一個「您的帳戶」頁面,因爲我應該這樣做,但如果我刷新頁面,我會發回登錄屏幕。我的會話存儲在數據庫中,所以我一直在檢查他們看看會發生什麼,這是我所看到的:
- 會議開始了空
- 我登錄,但要確保我重定向到一個頁面不會加載成員
- 會話現在包含用戶對象和關係關係的所有信息
- 我訪問加載成員資格的「您的帳戶」,它們會正確顯示。
- 會議已經核爆,現在是因爲它是在步驟1中
- 我刷新頁面,
我定義我自己的用戶提供送回到登錄頁面,如果我發現我將refreshUser中的每個成員資格的成員類型設置爲null,它開始工作,所以我猜測會話在這種關係中遇到了問題。
我真的很努力地找到解決方案,所以任何幫助將非常感激。
編輯:做了一些更多的實驗,發現如果我切換到文件會話一切都開始工作,所以它必須與存儲會話在數據庫中相關。我使用Symfony Cookbook中的指南製作了開關。僅供參考這裏的相關位從我config.yml:
framework:
session:
default_locale: %locale%
auto_start: true
storage_id: session.storage.pdo
parameters:
pdo.db_options:
db_table: session
db_id_col: session_id
db_data_col: session_value
db_time_col: session_time
session.storage.pdo:
class: Symfony\Component\HttpFoundation\SessionStorage\PdoSessionStorage
arguments: [@pdo, %session.storage.options%, %pdo.db_options%]
pdo:
class: PDO
arguments:
dsn: "mysql:dbname=%database_name%;host=%database_host%"
user: %database_user%
password: %database_password%
其他一切關於他們似乎罰款,所以也許它在PdoSessionStorage
嗨Henrik,我不認爲就是這樣。目前我的等號檢查只是比較id(希望稍後改進),我只是嘗試記錄每個響應,它總是返回true。 – pogo