要讀取身份驗證的用戶,你可以寫:
getUserProfileR :: Handler RepHtml
getUserProfileR = do
userId <- requireAuthId
Entity _ userData <- runDB $ selectFirst [UserProfileUser ==. userId] [] >>= return.fromJust
defaultLayout $ do
setTitle "User profile"
$(widgetFile "userprofile")
列出所有,取出過濾器,使用select
代替selectFirst
和寫(在部件上)有些像
<h1>User list</h1>
<table>
<tr>
<th>Name
<th>Mail
<th>...
$forall (Entity _ userData) <- userList
<tr>
<td>#{userProfileName userData}
<td>#{userProfileMail userData}
<td>...
(原諒我不能寫一個完整的解決方案,但是在這裏我沒有一個開發沙箱)
編輯
完整和測試的例子。 (你需要耶索德平臺和耶索德彬)爲了簡單編輯「處理器/ Home.hs」文件
$ ghc-pkg list | grep yesod-[0-9]
yesod-1.2.2.1
$ yesod init
$ cd userList
,並添加
getUserListR :: Handler Html
getUserListR = do
users <- runDB $ selectList [] []
defaultLayout $ do
setTitle "Public user list!"
[whamlet|
<h1>User list</h1>
<table>
<tr>
<th>Mail
$forall (Entity _ userData) <- users
<tr>
<td>#{userIdent userData}
|]
加入下一行到「配置/路線」
測試
$ cabal install
$ yesod devel
輸入一些用戶在登錄和登錄了
http://site:port/auth/login
(do login)
http://site:port/auth/logout
列表中的用戶與
http://site:port/userlist
;)
你嘗試過什麼其他不僅僅是建立功能和數據庫? – bheklilr
我嘗試了與runDB,然後defaultLayout的東西,但似乎沒有工作,我不太明白這是如何工作 –
你檢查了[RawSQL的食譜](https://github.com/yesodweb/yesod/wiki/RawSQL)爲耶索德? – bheklilr