DBIx::Class::ResultSource::View5.16 man page on Darwin

Man page or keyword search:  
man Server   23457 pages
apropos Keyword Search (all sections)
Output format
Darwin logo
[printable version]

DBIx::Class::ResultSouUser:Contributed Perl DBIx::Class::ResultSource::View(3)

NAME
       DBIx::Class::ResultSource::View - ResultSource object representing a
       view

SYNOPSIS
	 package MyApp::Schema::Result::Year2000CDs;

	 use base qw/DBIx::Class::Core/;

	 __PACKAGE__->table_class('DBIx::Class::ResultSource::View');

	 __PACKAGE__->table('year2000cds');
	 __PACKAGE__->result_source_instance->is_virtual(1);
	 __PACKAGE__->result_source_instance->view_definition(
	     "SELECT cdid, artist, title FROM cd WHERE year ='2000'"
	 );
	 __PACKAGE__->add_columns(
	   'cdid' => {
	     data_type => 'integer',
	     is_auto_increment => 1,
	   },
	   'artist' => {
	     data_type => 'integer',
	   },
	   'title' => {
	     data_type => 'varchar',
	     size      => 100,
	   },
	 );

DESCRIPTION
       View object that inherits from DBIx::Class::ResultSource

       This class extends ResultSource to add basic view support.

       A view has a "view_definition", which contains a SQL query. The query
       can only have parameters if "is_virtual" is set to true. It may contain
       JOINs, sub selects and any other SQL your database supports.

       View definition SQL is deployed to your database on "deploy" in
       DBIx::Class::Schema unless you set "is_virtual" to true.

       Deploying the view does not translate it between different database
       syntaxes, so be careful what you write in your view SQL.

       Virtual views ("is_virtual" true), are assumed to not exist in your
       database as a real view. The "view_definition" in this case replaces
       the view name in a FROM clause in a subselect.

EXAMPLES
       Having created the MyApp::Schema::Year2000CDs schema as shown in the
       SYNOPSIS above, you can then:

	 $2000_cds = $schema->resultset('Year2000CDs')
			    ->search()
			    ->all();
	 $count	   = $schema->resultset('Year2000CDs')
			    ->search()
			    ->count();

       If you modified the schema to include a placeholder

	 __PACKAGE__->result_source_instance->view_definition(
	     "SELECT cdid, artist, title FROM cd WHERE year = ?"
	 );

       and ensuring you have is_virtual set to true:

	 __PACKAGE__->result_source_instance->is_virtual(1);

       You could now say:

	 $2001_cds = $schema->resultset('Year2000CDs')
			    ->search({}, { bind => [2001] })
			    ->all();
	 $count	   = $schema->resultset('Year2000CDs')
			    ->search({}, { bind => [2001] })
			    ->count();

SQL EXAMPLES
       is_virtual set to false
	     $schema->resultset('Year2000CDs')->all();

	     SELECT cdid, artist, title FROM year2000cds me

       is_virtual set to true
	     $schema->resultset('Year2000CDs')->all();

	     SELECT cdid, artist, title FROM
	       (SELECT cdid, artist, title FROM cd WHERE year ='2000') me

METHODS
   is_virtual
	 __PACKAGE__->result_source_instance->is_virtual(1);

       Set to true for a virtual view, false or unset for a real database-
       based view.

   view_definition
	 __PACKAGE__->result_source_instance->view_definition(
	     "SELECT cdid, artist, title FROM cd WHERE year ='2000'"
	     );

       An SQL query for your view. Will not be translated across database
       syntaxes.

   deploy_depends_on
	 __PACKAGE__->result_source_instance->deploy_depends_on(
	     ["MyApp::Schema::Result::Year","MyApp::Schema::Result::CD"]
	     );

       Specify the views (and only the views) that this view depends on.  Pass
       this an array reference of fully qualified result classes.

OVERRIDDEN METHODS
   from
       Returns the FROM entry for the table (i.e. the view name) or the SQL as
       a subselect if this is a virtual view.

OTHER METHODS
   new
       The constructor.

AUTHORS
       See "CONTRIBUTORS" in DBIx::Class.

LICENSE
       You may distribute this code under the same terms as Perl itself.

perl v5.16.2			  2012-08-16DBIx::Class::ResultSource::View(3)
[top]

List of man pages available for Darwin

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net