0

ユーザーが編集できない隠しフィールドがいくつかある symfony フォームがありますが、フォームを送信すると自動的に設定されます。設定できないように見える 1 つのフィールドは、userID です。フォームは保護されているため、表示するには認証が必要です (sfDoctrineGuardPlugin)。

私が探しているのは、「user_id」フィールドを現在ログインしているユーザー名に設定するフォームです。クラスファイルでこれを試しました。

    if ($this->isNew() && ! $this->getSeller_Id())
    {
        $this->setSeller_Id($this->getUser()->getGuardUser()->getUsername());

    }

ただし、現在のテーブルにユーザー フィールドがないことを示すエラーが常に返されます。私はそれを正しく説明したことを願っています。

4

2 に答える 2

2

ユーザー名をオプションとしてフォームに渡すことができます。コントローラーで:

 $myform = new myObjectForm(NULL, array('username' => $this->getUser()->getGuardUser()->getUsername());

次に、doSaveフォームの関数で:

 public function doSave($con = null)
 {
    if ($this->getObject()->isNew() && !$this->getObject()->getSeller_Id())
    {
        $this->getObject()->setSeller_Id($this->options['username']);
    }
 }
于 2012-07-07T07:42:11.777 に答える