배열을 반환하는 함수에서 모든 옵션을 가져와야하는 select (또는 choice) 필드가 있습니다.Admin 클래스의 Symfony Sonata에서 구성 풀에 어떻게 액세스합니까?
이것은 선택 필드를 정의하는 라인입니다.
->add('possibilities', 'choice', array('choices' => Crud::enumStatus()))
그리고 이것은 enumStatus 함수입니다. 내가 위에서 설명한 무엇
는public static function enumStatus()
{
return array(
'1' => 'Awaiting Approval',
'2' => 'Partly Approved',
'3' => 'Approved',
'4' => 'Disapproved',
'5' => 'Complete'
);
}
완벽하게 작동합니다. 하지만 실제로 원하는 것은 효과가 없습니다. 원칙은 동일하게 유지됩니다.
이것이 내가 원하는 것입니다.
->add('possibilities', 'choice', array('choices' => Crud::getUsers(array('Marketing', 'Human Resource Management'))))
그리고 위에서 언급 한 것과 동일한 클래스의 기능.
public function getUsers($roles)
{
$queryBuilder = $this->getConfigurationPool()->getContainer()->get('doctrine')->getManager('admin')
->createQueryBuilder();
$queryBuilder->select('u.id, u.name')
->from('Qi\Bss\BaseBundle\Entity\Admin\User', 'u')
->innerJoin('u.businessRoles', 'r')
->where('r.name IN (:roles)')
->setParameter('roles', $roles)
->orderby('u.name');
$result = $queryBuilder->getQuery()->getResult();
$users = array();
foreach ($result as $key => $value) {
$users[$value['id']] = $value['name'];
}
return $users;
}
오류 내가 원하는 걸하려고 할 때;
클래스 "XX \ YYY \ QqqBundle \ 컨트롤러 \ OrderController"의 "getConfigurationPool"메소드를 호출하는 시도했습니다.
오류 메시지에서 언급 한 컨트롤러는 두 가지 기능이 아닌 -> add()가 내 양식 용 컨트롤러입니다.
첫 번째 작품은 효과가 있지만 두 번째 작품은 효과가없는 이유는 무엇입니까? 누군가 제게 이것을 설명해 주시겠습니까? 하나의 기능에서 static
과 관련이 있습니까? 그리고이 문제를 어떻게 해결할 수 있습니까? configurationPool은 무엇이며 어떻게 구성합니까?
나는 Sonata Admin Bundle과 Symfony를 사용합니다.
죄송합니다. 결국 너무 많은 질문을합니다. 선택 사항을 수정하고 getUsers 메소드 및 "getConfigurationPool"오류에서 올바른 정보를 검색하는 방법에 대해 설명하겠습니다. –
'구성 풀에 액세스하는 방법'이란 제목으로 질문하지 않아야합니까? – pbenard
그래, 그 소리가 더 좋아. 그것을 바꿀 것입니다. –