Symfony'de 2 öğe oluşturdum: Çoktan çoğa ilişkide Kullanıcı ve Rol. Bu, her kullanıcının daha fazla role sahip olabileceği ve rollerin birçok kullanıcıya ayarlanabileceği anlamına gelir.symfony2 çoktan çoğuna form onay kutusu
Kullanıcı sınıfı:
/**
* @ORM\Entity
* @ORM\Table(name="JEP_User")
* @ORM\Entity(repositoryClass="Chrchel\JepBundle\Repository\UserRepository")
*/
class User implements AdvancedUserInterface {
/**
* @ORM\Id()
* @ORM\Column(name="id",type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(name="username",type="string",length=100,unique=true)
*/
private $username;
/**
* @ORM\ManyToMany(targetEntity="Role", inversedBy="users")
*
*/
protected $roles;
//....
}
Rol sınıfı:
/**
* @ORM\Table(name="JEP_Role")
* @ORM\Entity()
*/
class Role implements RoleInterface {
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id()
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/** @ORM\Column(name="name", type="string", length=30) */
protected $name;
/** @ORM\Column(name="role", type="string", length=20, unique=true) */
protected $role;
/** @ORM\ManyToMany(targetEntity="User", mappedBy="roles") */
protected $users;
//...
}
ben var tüm rolleri listelemek ve sonunda eklemek için Symfony2'deki sorgu oluşturucu oluşturmak için nasıl anlamaya olamaz UserForm, kullanıcıya verilen rolleri (onay kutuları olarak seçilebilir) seçilebilir. Ben rolleri seçilmiş isimlerle Kullanıcıtürü
->add('roles', 'collection',array('label' => 'Role', 'required' => false,'type'=> new RoleType()))
ben symfony aldığım en iyi böyle textboxes satırları koleksiyonu vardır kullanmaya çalıştı. Ama bu, ihtiyacım olan şey değil.
"genişletilmiş" seçeneğini onay kutusuna sahip olmak için "true" olarak ayarlayın. Ve 'Role' modelinde '__toString()' yöntemini uygulamanız gerekir (her onay kutusunun yanındaki etiketi görüntülemek için kullanılır. – GiDo
Kullanıcı varlığına rolleri Koleksiyon olarak döndürmek için Kullanıcı varlığına başka bir yöntem eklemem gerektiğini buldum. Bir dizi - getRolesAsCollection –
Ve bu özel 'getRolesAsCollection' olarak nasıl adlandırırsınız ve nerede? –