|
NAMEDBIx::Lite::SchemaVERSIONversion 0.33OVERVIEWThis class holds the very loose schema definitions that enable some advanced features of DBIx::Lite. Note that you can do all main operations, including searches and manipulations, with no need to define any schema.An empty DBIx::Lite::Schema is created every time you create a DBIx::Lite object. Then you can access it to customize it. Otherwise, you can prepare a Schema object and reutilize it across multiple connections: my $schema = DBIx::Lite::Schema->new; my $conn1 = DBIx::Lite->new(schema => $schema)->connect(...); my $conn2 = DBIx::Lite->new(schema => $schema)->connect(...); newThe constructor takes no arguments.tableThis method accepts a table name and returs the DBIx::Lite::Schema::Table object corresponding to the requested table. You can then call methods on it.$schema->table('books')->autopk('id'); one_to_manyThis methods sets up a 1-to-N relationship between two tables. Just pass two table names to it, appending the relation key column name:$schema->one_to_many('authors.id' => 'books.author_id'); This will have the following effects:
If you supply a third argument, it will be used to set up the reverse accessor method. For example this will install a "author" accessor method in the books Result objects: $schema->one_to_many('authors.id' => 'books.author_id', 'author'); If you also want to customize the accessor for the first table, you can supply an arrayref with both accessor names. This can be needed when the second table has two fields referencing the same table: $schema->one_to_many('authors.id' => 'books.author_id', [ 'books_as_author', 'author' ]); $schema->one_to_many('authors.id' => 'books.curator_id', [ 'books_as_curator', 'curator' ]); Note that relationships can be chained: $dbix->schema->one_to_many('authors.id' => 'books.author_id'); $dbix->schema->one_to_many('books.id' => 'chapters.books_id'); my @chapters = $dbix ->table('authors') ->search({ country => 'IT' }) ->books ->chapters ->search({ page_count => { '>' => 20 } }) ->all; You can use the same approach to traverse many-to-many relationships. AUTHORAlessandro Ranellucci <aar@cpan.org>COPYRIGHT AND LICENSEThis software is copyright (c) 2021 by Alessandro Ranellucci.This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
Visit the GSP FreeBSD Man Page Interface. |