Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DBIx::Class::Helper::RUserSContributedIPerClass::Helper::Row::StorageValues(3)

NAME
       DBIx::Class::Helper::Row::StorageValues - Keep track of stored vs
       in-memory row values

SYNOPSIS
	package	MyApp::Schema::Result::BlogPost;

	use parent 'DBIx::Class::Core';

	__PACKAGE__->load_components(qw(Helper::Row::StorageValues));

	__PACKAGE__->table('BlogPost');
	__PACKAGE__->add_columns(
	   id => {
	      data_type		=> 'integer',
	      is_auto_increment	=> 1,
	   },
	   title => {
	      data_type		 => 'varchar',
	      length		 => 32,
	      keep_storage_value => 1,
	   },
	   body	=> {
	      data_type	=> 'text',
	   },
	);

	1;

	# elsewhere:

	my $post = $blog_rs->create({
	  title	=> 'Components for fun and profit',
	  body	=> '...',
	});

	$post->title('Components for fun');

	warn sprintf 'Changing title from %s to	%s',
	  $post->storage_value('title'), $post->title;

	$post->update;

DESCRIPTION
       This component keeps track of the value for a given column in the
       database.  If you change	the column's value and do not call "update",
       the "storage_value" will	be different; once "update" is called the
       "storage_value" will be set to the value	of the accessor.  Note that
       the fact	that it	uses the accessor is an	important distinction.	If you
       are using DBIx::Class::FilterColumn or DBIx::Class::InflateColumn it
       will get	the non-storage	or inflated values, respectively.

METHODS
   _has_storage_value
	$self->_has_storage_value('colname')

       returns true if we should store the storage value from the database.
       Override	this if	you'd like to enable storage on	all integers or
       something like that:

	sub _has_storage_value {
	   my (	$self, $column ) = @_;

	   my $info = $self->column_info($column);

	   return defined $info->{data_type} &&	$info->{data_type} eq 'integer';
	}

   storage_value_columns
	$self->storage_value_columns

       returns a list of columns to store

   get_storage_value
	$self->get_storage_value('colname')

       returns the value for that column which is in storage

AUTHOR
       Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>

COPYRIGHT AND LICENSE
       This software is	copyright (c) 2020 by Arthur Axel "fREW" Schmidt.

       This is free software; you can redistribute it and/or modify it under
       the same	terms as the Perl 5 programming	language system	itself.

perl v5.32.0			  20DBIx::Class::Helper::Row::StorageValues(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=DBIx::Class::Helper::Row::StorageValues&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help