Hola,
Tienes validación del lado del cliente con,
->add('miCampo','text',array('label' => 'Expediente','required' =>true))
como bien dices y del lado del servidor con,
/**
* @var string $miCampo
* @Assert\NotBlank()
*/
private $miCampo;
como también indicas.
Lo que debes tener en cuenta es que la validación del lado del servidor la debes hacer en el controlador con el método isValid().
Por otro lado, es raro que con la validación del lado del cliente no pasada te envíe igual el formulario.
Saludos.
--
Fabricio Salinas
Project LeaderGtalk: fabricio...@gmail.com
Skype: fabriciosalinas
Móvil (mx): 52 811 3997330
Móvil (ar): 54 3400 15 512831
Nextel: 52 811 7773087
Radio: 52*234216*13