NAME

Catalyst::View::Template::Lace::Role::URI - Shortcut to create a URI on the current controller

SYNOPSIS

package  MyApp::View::User;

use Moo;
extends 'Catalyst::View::Template::Lace';
with 'Catalyst::View::Template::Lace::Role::URI';

sub template {q[
  <html>
    <head>
      <title>Link Example</title>
    </head>
    <body>
     <a>Link</a>
    </body>
  </html>
]}

sub process_dom {
  my ($self, $dom) = @_;
  $dom->at('a')
   ->href($self->uri('../display'));
}

DESCRIPTION

A role that gives your model object a uri method. This method works similarly to "$c->uri_for" except that it only takes an action object or a string that is an absolute or relative (to the current controller) private name.

NOTE Since this role uses "$c->controller" to determine the 'last controller executed' you must take care to use "$c->go" rather than "$c->detach", since the latter will leave "$c->controller" to the value of the controller detached from rather then the actual last controller executed.

METHOD

This role defines the following methods

uri

$self->uri($action);
$self->uri('/user/display');
$self->uri('display');
$self->uri('../list');

First argument is an action object or a string. If a string it must be either an absolute private name to an action or a relative one

If you want to build a URI from the current action you can just pass undef.

SEE ALSO

Catalyst::View::Template::Lace.

AUTHOR

Please See Catalyst::View::Template::Lace for authorship and contributor information.

COPYRIGHT & LICENSE

Please see Catalyst::View::Template::Lace for copyright and license information.