Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>There has been a problem with ORM JOINS. id to role_id <br/><br/> I've changed the mapping from One-To-One <strong>Bidirectional</strong> to One-To-One, <strong>Unidirectional</strong> with Join Table.</p> <p><br/> Full code:<br/> <strong>Users.php</strong></p> <pre><code>&lt;?php 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) */ protected $password; /** * @var string $username * * @ORM\Column(name="username", type="string", length=30) */ protected $username; /** * @var string $description * * @ORM\Column(name="description", type="string", length=20) */ protected $description; /** * @var string $permissions * * @ORM\Column(name="permissions", type="string", length=300) */ protected $permissions; /** * @var integer $company_id * * @ORM\Column(name="company_id", type="integer") */ protected $company_id; /** * @var integer $role_id * * @ORM\Column(name="role_id", type="integer") */ protected $role_id; /** * @ORM\OneToOne(targetEntity="Company") * @ORM\JoinColumn( name="company_id", referencedColumnName="id" ) */ protected $companies; /** * @ORM\OneToOne(targetEntity="UsersRole") * @ORM\JoinColumn( name="role_id", referencedColumnName="id" ) */ protected $listRoles; public function __construct() { } /** * 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 = sha1($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 company_id * * @param Company $company_id * @return Users */ public function setCompanyId($company_id) { $this-&gt;company_id = $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() { } /** * Get roles * * @return String */ public function getRoles() { $roles = $this-&gt;getListRoles(); return (array)$roles-&gt;getName(); } /** * Get roles * * @return \UsersRole */ public function getListRoles() { return $this-&gt;listRoles; } /** * Set roles * * @param \UsersRole * @return Users */ public function setListRoles($roles) { $this-&gt;listRoles = $roles; return $this; } /** * Set role_id * * @param integer * @return Users */ public function setRoleID($roleId) { $this-&gt;role_id = $roleId; return $this; } public function getSalt() { } /** * Get company * * @return Company */ public function getCompanies() { return $this-&gt;companies; } /** * Set company * * @param Company $company * @return Users */ public function setCompanies($company) { $this-&gt;companies = $company; return $this; } } </code></pre> <p><strong>UsersRole.php</strong></p> <pre><code>&lt;?php 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>The controller</strong> hasn't been changed</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></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("password","password",array( "label" =&gt; "Password", 'attr' =&gt; array( 'class' =&gt; 'input-xlarge', ), 'constraints' =&gt; new Constraints\Length(array('min' =&gt; 3)) )) -&gt;add("listRoles","entity",array( 'label' =&gt; 'Roles', 'class' =&gt; 'TruckingMainBundle:UsersRole' , 'property' =&gt; 'name' )) -&gt;add("companies","entity",array( 'label' =&gt; 'Companies', 'class' =&gt; 'TruckingMainBundle:Company' , '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 'trucking_adminbundle_usertype'; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    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