다음과 같은 주요 양식이 있습니다.
class ArticleCreateType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options) {
$user = $options['user'];
$builder
->add('id')
->add('date')
->add('title');
if(in_array('ROLE_SUPER_ADMIN', $user->getRoles())) {
$builder->add('articlebody', new ArticleBodyType());
}
else {
// how to add only 'part1' from ArticleBody ??
}
}
...
}
본문 부분의 하위 양식은 다음과 같습니다.
class ArticleBodyType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('part1', 'textarea', array('required' => false))
->add('part2', 'textarea');
}
...
}
연결된 사용자가 관리자가 아닌 경우 (즉, 댓글), ArticleBody의 'part1'필드 만 메인 폼 에 추가하고 싶습니다 .
나는 성공하지 못했습니다 : -ArticleCreateType의
'part1'필드에 액세스
하려고-ArticleCreateType에서 ArticleBodyType으로 $ 옵션을 보내려고 시도했습니다 (하지만 가능한 경우 첫 번째 방법을 선호합니다)
당신의 도움을 주셔서 감사합니다.
나는 전달할 것 user
에를 ArticleBodyType
, 그 안에 사용자 역할을 확인 ..
class ArticleCreateType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options) {
$user = $options['user'];
$builder
->add('id')
->add('date')
->add('title')
->add('articlebody', new ArticleBodyType(), [
'user' => $user
]);
}
...
}
class ArticleBodyType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$user = $options['user'];
$builder->add('part1', 'textarea', array('required' => false));
if(in_array('ROLE_SUPER_ADMIN', $user->getRoles())) {
$builder->add('part2', 'textarea');
}
}
...
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다