我正在使用窗體(filterForm)過濾實體的一個樹枝視圖。Symfony2:實體字段(html選擇)設置SELECTED項目
'filterForm'只有'實體'類型的字段。在視圖上顯示一個HTML-SELECT-OPTIONs標籤。
當用戶改變選擇,相同的控制器被稱爲做壞事的東西來過濾實體列表。
所有工作正常,但我需要顯示與篩選列表的值的SELECT字段。這是問題,我不知道該怎麼做。
領域的代碼從index.html.twig了一下:
{{ form_widget(personalFilterForm.personaFiltrarMail,
{ 'empty_value': 'Todos',
'attr': {'selected': personaFiltrarMail,
'onChange': 'javascript:document.filtrado.submit()' }
}
)
}}
那代碼生成這個HTML代碼:
<select name="test_onebundle_type[personaFiltrarMail]" id="test_onebundle_type_personaFiltrarMail"
onchange="javascript:document.filtrado.submit()"
required="required" selected="[email protected]">
<option value="">Todos</option>
<option [email protected]">Name One</option>
<option [email protected]">Name Two</option>
<option [email protected]">Name three</option>
這裏真正的問題(我認爲)是我知道如何訪問OPTIONS子元素來在一個具體的OPTION項上設置de SELECTED屬性。
謝謝。
===控制器===
這裏的 '控制器' ......
這四個編號的 '回聲' 給我的郵件: '[email protected]' 但SELECT HTML標記始終位於第一個OPTION標籤上。
class HorasController extends Controller
{
/**
* Lists all Horas entities.
*
* @Route("/", name="horas")
* @Template()
*/
public function indexAction()
{
$em = $this->getDoctrine()->getEntityManager();
$personas = $em->getRepository('PtGhorgaBundle:Personal')->findAll();
$personalFilterForm = $this->createForm(new PersonalFilterType(), $personas);
$request = $this->getRequest();
$formVars = $request->request->get('pt_ghorgabundle_type');
$personaFiltrarMail = $formVars['personaFiltrarMail'];
//echo "1.- [".$personaFiltrarMail."]<br />";
if (!isset($personaFiltrarMail) || $personaFiltrarMail=="") {
$entities = $em->getRepository('PtGhorgaBundle:Horas')->findAll();
} else {
$criterio = array('persona' => $personaFiltrarMail,);
$entities = $em->getRepository('PtGhorgaBundle:Horas')->findBy($criterio);
$criterio = array('mail' => $personaFiltrarMail,);
$personaFiltrarMail = $em->getRepository('PtGhorgaBundle:Personal')->find($criterio)->getMail();
echo "2.- [".$personaFiltrarMail."]<br />";
$personalFilterForm->personaFiltrarMail = $personaFiltrarMail;
echo "3.- [".$personaFiltrarMail."]<br />";
echo "4.- [".$personalFilterForm->personaFiltrarMail."]<br />";
}
return array('entities' => $entities,
'personas' => $personas,
'personalFilterForm' => $personalFilterForm->createView(),
'personaFiltrarMail' => $personaFiltrarMail,
);
}
嗨@Jules,感謝您的回答,但沒有運氣與此。我已經添加了控制器/ indexAction的問題。 – ferpega