Note that there are some explanatory texts on larger screens.

plurals
  1. POsymfony2 selected option
    primarykey
    data
    text
    <p>I'm making the user edit. <br/> I want to view selected role of the current user by Users.role_id = UsersRole.id <br/><br/> The table <strong>Users</strong> has four columns (id,username,roleId,descriptions)<br/> The table <strong>UsersRole</strong> has two columns (id,name)</p> <p><strong>Controller:</strong><br/></p> <pre><code>public function editAction($id) { $user = $this-&gt;getDoctrine() -&gt;getEntityManager() -&gt;getRepository('TruckingMainBundle:Users') -&gt;find($id); if (!$user) { throw $this-&gt;createNotFoundException('Unable to find user id.'); } $form = $this-&gt;createForm(new \Trucking\AdminBundle\Form\UserType(), $user); $request = $this-&gt;getRequest(); //save data if ($request-&gt;getMethod() == 'POST') { $form-&gt;bindRequest($request); if ($form-&gt;isValid()) { $em = $this-&gt;getDoctrine()-&gt;getEntityManager(); $em-&gt;persist($user); $em-&gt;flush(); return $this-&gt;redirect($this-&gt;generateUrl('tracking_admin_users')); } } return $this-&gt;render('TruckingAdminBundle:user:edit.html.twig', array( 'id' =&gt; $id, 'form' =&gt; $form-&gt;createView() ) ); } </code></pre> <p><strong>UserType.php</strong><br/></p> <pre><code> public function buildForm(FormBuilderInterface $builder, array $options) { $builder -&gt;add('roleId', 'entity', array( 'class' =&gt; 'TruckingMainBundle:UsersRole', 'property' =&gt; 'name' )) -&gt;...-&gt;.. } </code></pre> <p>I don't know how to set selected (default) value in that list, I've been trying to do it for 5 hours ,but still no results<br/><br/> I've used <strong>preferred_choices</strong>, <strong>query_builder</strong> -> where I can select by critreia(but i don't need that)<br/> <a href="http://symfony.com/doc/current/reference/forms/types/entity.html" rel="nofollow noreferrer">http://symfony.com/doc/current/reference/forms/types/entity.html</a> <img src="https://i.stack.imgur.com/uf8v8.jpg" alt="enter image description here"></p> <p>I can print my current user id -> <strong>print_r($user->getRoleId())</strong>;<br/> I already have it. My 'Users' entity has connection with UserRole entity<br/> <br/> <strong>Users entity</strong> <pre><code>namespace Trucking\MainBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Security\Core\User\UserInterface; /** * Trucking\MainBundle\Entity\Users * * @ORM\Table(name="Users") * @ORM\Entity */ class Users implements UserInterface { /** * @var integer $id * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="IDENTITY") */ protected $id; /** * @var string $password * * @ORM\Column(name="password", type="string", length=15) */ private $password; /** * @var string $username * * @ORM\Column(name="username", type="string", length=30) */ private $username; /** * @var string $description * * @ORM\Column(name="description", type="string", length=20) */ private $description; /** * @var string $permissions * * @ORM\Column(name="permissions", type="string", length=300) */ private $permissions; /** * @var \DateTime $date * * @ORM\Column(name="date", type="datetime") */ private $date; /** * @var integer $role_id * * @ORM\Column(name="role_id", type="integer") */ private $role_id; /** * @var integer $company_id * * @ORM\Column(name="company_id", type="integer") */ private $company_id; /** * @ORM\ManyToMany(targetEntity="Company", inversedBy="users") * */ protected $companies; /** * @ORM\OneToOne(targetEntity="UsersRole") * @ORM\JoinColumn(name="role_id", referencedColumnName="id") */ protected $roles; public function __construct() { $this-&gt;companies = new ArrayCollection(); } /** * Get id * * @return integer */ public function getId() { return $this-&gt;id; } /** * Set password * * @param string $password * @return Users */ public function setPassword($password) { $this-&gt;password = $password; return $this; } /** * Get password * * @return string */ public function getPassword() { return $this-&gt;password; } /** * Set username * * @param string $username * @return Users */ public function setUsername($username) { $this-&gt;username = $username; return $this; } /** * Get username * * @return string */ public function getUsername() { return $this-&gt;username; } /** * Set description * * @param string $description * @return Users */ public function setDescription($description) { $this-&gt;description = $description; return $this; } /** * Get description * * @return string */ public function getDescription() { return $this-&gt;description; } /** * Set permissions * * @param string $permissions * @return Users */ public function setPermissions($permissions) { $this-&gt;permissions = $permissions; return $this; } /** * Get permissions * * @return string */ public function getPermissions() { return $this-&gt;permissions; } /** * Set date * * @param \DateTime $date * @return Users */ public function setDate($date) { $this-&gt;date = $date; return $this; } /** * Get date * * @return \DateTime */ public function getDate() { return $this-&gt;date; } /** * Set role_id * * @param integer $role * @return Users */ public function setRoleId($role_id) { $this-&gt;roleId = $role_id; return $this; } /** * Get role_id * * @return integer */ public function getRoleId() { return $this-&gt;role_id; } /** * Set company_id * * @param Company $company_id * @return Users */ public function setCompany(Company $company_id) { $this-&gt;company = $company_id; return $this; } /** * Get company_id * * @return integer */ public function getCompanyId() { return $this-&gt;company_id; } public function equals(UserInterface $user) { return $this-&gt;getUsername() == $user-&gt;getUsername(); } public function eraseCredentials() { } public function getRoles() { return (array)$this-&gt;roles-&gt;getName(); } public function setRoles($role) { $this-&gt;roles = array($role); } public function getSalt() { } } </code></pre> <p><strong>UsersRole entity</strong> <pre><code>namespace Trucking\MainBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * USERS_ROLE * * @ORM\Table(name="USERS_ROLE") * @ORM\Entity */ class UsersRole { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * @var string * * @ORM\Column(name="name", type="string", length=30) */ protected $name; /** * @var string * * @ORM\Column(name="description", type="string", length=200) */ protected $description; /** * Get id * * @return integer */ public function getId() { return $this-&gt;id; } /** * Set name * * @param string $name * @return USERS_ROLE */ public function setName($name) { $this-&gt;name = $name; return $this; } /** * Get name * * @return string */ public function getName() { return $this-&gt;name; } /** * Set description * * @param string $description * @return USERS_ROLE */ public function setDescription($description) { $this-&gt;description = $description; return $this; } /** * Get description * * @return string */ public function getDescription() { return $this-&gt;description; } } </code></pre> <p><strong>UserType (for form)</strong></p> <pre><code>&lt;?php namespace Trucking\AdminBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Validator\Constraints; class UserType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder -&gt;add("username","text",array( "label" =&gt; "Name", 'attr' =&gt; array( 'class' =&gt; 'input-xlarge', ), 'constraints' =&gt; new Constraints\Length(array('min' =&gt; 3)) )) -&gt;add('roleId', 'entity', array( 'class' =&gt; 'TruckingMainBundle:UsersRole', "label" =&gt; "Roles", 'property' =&gt; 'name' )) -&gt;add("description","text",array( "label" =&gt; "Description", 'attr' =&gt; array( 'class' =&gt; 'input-xlarge' ), 'constraints' =&gt; new Constraints\NotBlank() )); } public function getName() { return 'trucing_adminbundle_usertype'; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload