Quick-post: Cake 1.3's virtual fields

CakePHP 1.3 komt met vele nieuwe features, waarvan ik virtual fields veruit de meest handige vindt. Met virtual field kun je bijvoorbeeld CONCATS makkelijk toevoegen aan je model resultaten.

Virtual fields werkt vanuit een variabele in je model; $virtualFields. Je voegt een virtual field toe aan je model door de volgende array aan de variabele te hangen:

var $virtualFields = array(
    'name' => 'CONCAT(User.firstname, ' ', User.lastname)',
);

Vervolgens komt het veld als extra key beschikbaar in bijvoorbeeld je find() resultaat:

debug($this->User->find('all'));
// echoes:
array(
    0 => array(
        'User' => array(
            'firstname' => 'Bjorn',
            'lastname' => 'Post',
            'name' => 'Bjorn Post'
        )
    )
)

Helaas werken virtual fields nog niet lekker met de fields parameter in de find functie, je kunt virtuele velden nog niet selecteren. Wat wel werkt is de samenwerking tussen virtual fields en pagination (voor bijvoorbeeld sorteren). Wel even opletten als je zowel een 'normaal' veld 'name' hebt, als een virtual field 'name'; dat kan gezeur geven.


Reacties

Er zijn op dit moment geen reacties.