The best solution would be several cards trunked into the switch with the appropriate number of VLANS configured.
Fast, flexible and convenient.
But, it seems that this is impossible on pfSense as of yet. A hack is to bridge individual VLANs on each interface, but I continually run into problems trying to implement that. When you add two pfSense machines and CARP, that brick wall suddenly appears just in front of you.
A single card with multiple VLANs works perfectly.