Mat*_*eil 1 forms symfony fosuserbundle
我发现这个片段确实在创建时在我的表单中放置了一个默认值
$builder
->add('myfield', 'text', array(
'label' => 'Field',
'data' => 'Default value'))
;
Run Code Online (Sandbox Code Playgroud)
如果我想用FOSUser捆绑中的身份验证人员替换"默认值"该怎么办?(返回true为is_granted("IS_AUTHENTICATED_REMEMBERED"))
我可以用twig文件检索该名称
{{ app.user.username }}
Run Code Online (Sandbox Code Playgroud)
我也用控制器方法完成了它
$username=$this->container->get('security.context')->getToken()->getUser()->getUsername()
Run Code Online (Sandbox Code Playgroud)
但我无法设法使我的形式工作!
我不确定我是否理解那个容器的东西......既不是如何在类和控制器之间传递变量......这可能是什么?
->add('myfield', 'text', array(
'label' => 'Field',
'data' => FOS\UserBundle\Model::$this->getUsername()))
Run Code Online (Sandbox Code Playgroud)
您可以将控制器中的变量传递到表单:
在你的控制器中:
$username=$this->container->get('security.context')->getToken()->getUser()->getUsername()
$form = $this->createForm(new MyFormType($username), $entity);
Run Code Online (Sandbox Code Playgroud)
在你的形式:
protected $username;
public function __construct (array $username = null)
{
$this->username = $username ;
}
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('myfield', 'text', array(
'label' => 'Field',
'data' => $this->username))
}
Run Code Online (Sandbox Code Playgroud)