[Dbix-class] Updating lookup ID based on corresponding string
    Tim King 
    timk at theperlshop.com
       
    Thu Sep 17 21:20:15 GMT 2015
    
    
  
Hi, all.
I have lookup-table relationships of the following form:
__PACKAGE__->belongs_to(
    size => 'Schema::Result::SizeLookup',
    { 'foreign.size_id' => 'self.size_id' },
);
Now, I know that I can create a new row like this (all made-up
pseudocode, so please forgive any typos), and have DBIC look up the
size_id from the SizeLookup table:
$schema->resultset('TeeShirt')->create({
    serial_number => 'XYZ1234',
    size => { name => 'large' },
});
But I would really like to be able to do something *similar* to this:
$schema->resultset('TeeShirt')->create({
    serial_number => 'XYZ1234',
    size_name => 'large',
});
$tee_shirt->update({
    size_name => 'small',
});
We're a little surprised that this isn't a common desire, to be able to
create/update looked-up IDs based on the corresponding identifying
string. But we can't seem to find any off-the-shelf component that will
enable something like this.
We did see DBIx::Class::LookupColumn, but that provides additional
methods, not column-like functionality.
Any suggestions?
Tim
-- 
Tim King
Lead Developer, The Perl Shop
http://www.theperlshop.com/
    
    
More information about the DBIx-Class
mailing list