0

Web アプリケーションのユーザーに投稿してもらいたいです。投稿には、彼が投稿したことを示すために彼のユーザー名が含まれます。どうすればいいですか?

アップデート!

これは私の作業コードです

以下の私のコードを見てください:

        def createlisting = isAuthenticated { username => implicit request =>
          Ok(html.createlisting(listingsForm))
        }

        def postlisting = withUser {user => implicit request => {
          listingsForm.bindFromRequest.fold(
            formWithErrors => BadRequest(html.createlisting(formWithErrors)),
            listing => {
              val username = val username = User.getUserName(user)
              Listings.create(listing.categorytype, listing.title, listing.description, username)
              Redirect(routes.Application.active).flashing("success" -> "Listing %s has been posted".format(listing.title))
              }
            )
            }
          }

        val listingsForm = Form(
          mapping(
            "_id" ->  ignored(new ObjectId()),
            "categorytype" -> mapping(
              "category" -> nonEmptyText,
              "subcategory" -> nonEmptyText)(Type.apply)(Type.unapply),
            "title" -> nonEmptyText,
            "description" -> nonEmptyText,
            "username" -> igrnored(String)
          )(Listings.apply)(Listings.unapply)
        )

scala.html

                @(createForm: Form[Listings])

                @import helper._

                @implicitFieldConstructor = @{ FieldConstructor(twitterBootstrapInput.f) } 

                    <h1>Add a Listing</h1>

                    @form(routes.Application.postlisting()) {

                        <fieldset>
                            @inputText(createForm("categorytype.category"), '_label -> "Main Category")
                            @inputText(createForm("categorytype.subcategory"), '_label -> "Sub Category")
                            @inputText(createForm("title"), '_label -> "Title")
                            @inputText(createForm("description"), '_label -> "Description")

                        </fieldset>

                        <div class="actions">
                            <input type="submit" value="Post Add" class="btn primary" href="/"> or 
                            <a href="/" class="btn primary">Cancel</a> 
                        </div>

                    }

ユーザー名がポストリスティング機能に自動的に渡され、データベースに保存されるようにするにはどうすればよいですか?

4

1 に答える 1

1

ユーザー名がセッション内にある場合 (withUser他の関数で を使用すると表示されるように)、ユーザーは何もする必要がなく、リクエストごとに自動的に渡されます。

ただし、必要なのはそれを回復することです。Action別の呼び出しでラップするだけでうまくいくように見えますwithUser

于 2012-09-04T11:02:38.937 に答える