Mojolicous::路线::路线-路线
使用Mojolicious::Routes::Route;my$r=Mojolicious::Routes::Route->new;
Mojolicious::路由::路由是使用的路由容器Mojolicious::路线.
Mojolicious::路由::路由实现以下属性。
我的$孩子=$r->孩子;$r=$r->children([Mojolicious::Routes::Route->new]);
此路由的子级,用于嵌套路由。
我的$bool=$r->inline;$r=$r->inline($bool);
允许“低于”此路由的语义。
我的$parent=$r->parent;$r=$r->parent(Mojolicious::Routes::Route->new);
此路线的父级,通常是Mojolicious::路由::路由对象。请注意,该属性被削弱了。
我的$bool=$r->部分;$r=$r->部分($bool);
路由没有特定的结束,剩余的字符将在中捕获路径
.
我的$pattern=$r->模式;$r=$r->pattern(Mojolicious::Routes::pattern->new);
此路线的图案,默认为Mojolicious::路由::模式对象。
Mojolicious::路由::路由从继承所有方法Mojo::基础并实现以下新功能。
$r=$r->add_child(Mojolicious::Routes::Route->new);
向此路由添加子路由,如果需要,它将自动从当前父路由中删除。
#重新连接路线$r->add_child($r->find('foo'));
我的$route=$r->any;my$route=$r->any('/:foo');my$route=$r->any('/:foo'=>sub($c){…});my$route=$r->any('/:foo'=>sub($c){…}=>'name');my$route=$r->any('/:foo'=>{foo=>'bar'}=>sub($c){…});我的$route=$r->any('/:foo'=>[foo=>qr/\w+/]=>sub($c){…});my$route=$r->any('/:foo'=>(agent=>qr/Firefox/)=>sub($c){…});my$route=$r->any([“GET”,“POST”]=>“/:foo”=>sub($c){…});我的$route=$r->any(['GET','POST']=>'/:foo'=>[foo=>qr/\w+/]);
生成Mojolicious::路由::路由对象匹配任何列出的HTTP请求方法或所有方法。
#带图案和目的地的路线$r->any(“/user”)->to(“user#whatever”);
所有参数都是可选的,但有些参数必须以特定的顺序出现,例如两个受支持的数组引用值,其中包含要匹配的HTTP方法和限制性占位符。
#使用HTTP方法、模式、限制占位符和目标进行路由$r->any(['DELETE','PUT']=>'/:foo'=>[foo=>qr/\w+/])->to('foo#bar');
还有两个支持的字符串值,包含路由模式和路由名称,默认为模式/
和基于模式的名称。
#带有图案、名称和目的地的路线$r->any('/:foo'=>'foo_route')->to('foo#bar');
路由模式和名称之间的任意数量的键/值对可用于指定路由条件。
#带有模式、条件和目的地的路线$r->any('/'=>(agent=>qr/Firefox/))->to('foo#bar');
哈希引用用于指定可选占位符和存储的默认值。
#带图案、可选占位符和目的地的路线$r->any('/:foo'=>{foo=>'bar'})->to('foo#bar');
代码引用可用于指定哥伦比亚广播公司
值合并为存储的默认值。
#以图案和闭合作为目的地的路线$r->any('/:foo'=>sub($c){$c->render(text=>“你好,世界!”);});
请参见Mojolicuis::指南::教程和Mojolicious::辅助线::路由了解更多信息。
我的$route=$r->delete;我的$route=$r->delete('/:foo');my$route=$r->delete('/:foo'=>sub($c){…});my$route=$r->delete('/:foo'=>sub($c){…}=>'name');我的$route=$r->delete('/:foo'=>{foo=>'bar'}=>sub($c){…});我的$route=$r->delete('/:foo'=>[foo=>qr/\w+/]=>sub($c){…});my$route=$r->delete('/:foo'=>(agent=>qr/Firefox/)=>sub($c){…});
生成Mojolicious::路由::路由仅对象匹配删除
请求,采用与“任何”(除了要匹配的HTTP方法,这些方法是隐含的)。请参见Mojolicuis::指南::教程和Mojolicious::辅助线::路由了解更多信息。
#带目的地的路线$r->delete('/user')->to('user#remove');
my$route=$r->find('foo');
按名称查找子路由,自定义名称优先于自动生成的名称。
#更改命名路由的默认参数$r->find('show_user')->to(foo=>'bar');
我的$route=$r->get;my$route=$r->get('/:foo');my$route=$r->get('/:foo'=>sub($c){…});my$route=$r->get('/:foo'=>sub($c){…}=>'name');我的$route=$r->get('/:foo'=>{foo=>'bar'}=>sub($c){…});我的$route=$r->get('/:foo'=>[foo=>qr/\w+/]=>sub($c){…});my$route=$r->get('/:foo'=>(agent=>qr/Firefox/)=>sub($c){…});
生成Mojolicious::路由::路由仅对象匹配GET(获取)
请求,采用与相同的参数“任何”(除了要匹配的HTTP方法,这是隐含的)。请参见Mojolicuis::指南::教程和Mojolicious::辅助线::路由了解更多信息。
#带目的地的路线$r->get('/user')->to('user#show');
我的$bool=$r->has_custom_name;
检查此路由是否具有自定义名称。
我的$bool=$r->有网络套接字;
检查此路由是否具有WebSocket祖先并缓存结果以供将来检查。
我的$bool=$r->is_endpoint;
检查此路由是否符合端点条件。
我的$bool=$r->已恢复(“控制器”);
检查字符串是否为保留的存储值。
我的$bool=$r->iswebsocket;
检查此路由是否为WebSocket。
我的$methods=$r->方法;$r=$r->方法(“GET”);$r=$r->方法(“GET”、“POST”);$r=$r->方法(['GET','POST']);
限制此路由允许处理的HTTP方法,默认为无限制。
#有两种方法和目的地的路线$r->any('/foo')->方法('GET','POST')->to('foo#bar');
我的$名称=$r->名称;$r=$r->名称('foo');
此路线的名称默认为基于路线模式自动生成的名称。请注意,名称现在的
保留用于引用当前路由。
#带有目的地和自定义名称的路由$r->get('/user')->to('user#show')->name('show_user');
我的$route=$r->选项;my$route=$r->选项('/:foo');my$route=$r->选项('/:foo'=>sub($c){…});my$route=$r->选项('/:foo'=>sub($c){…}=>'name');我的$route=$r->选项('/:foo'=>{foo=>'bar'}=>sub($c){…});我的$route=$r->选项('/:foo'=>[foo=>qr/\w+/]=>sub($c){…});my$route=$r->选项('/:foo'=>(agent=>qr/Firefox/)=>sub($c){…});
生成Mojolicious::路由::路由仅对象匹配选项
请求,采用与相同的参数“任何”(除了要匹配的HTTP方法,这是隐含的)。请参见Mojolicuis::指南::教程和Mojolicious::辅助线::路由了解更多信息。
#带目的地的路线$r->选项(“/user”)->to(“user#overview”);
$r=$r->parse('/user/:id');$r=$r->parse('/user/:id',id=>qr/\d+/);$r=$r->parse(格式=>['json','yaml']);
分析模式。
我的$route=$r->补丁;my$route=$r->补丁('/:foo');my$route=$r->patch('/:foo'=>sub($c){…});my$route=$r->patch('/:foo'=>sub($c){…}=>'name');我的$route=$r->patch('/:foo'=>{foo=>'bar'}=>sub($c){…});我的$route=$r->patch('/:foo'=>[foo=>qr/\w+/]=>sub($c){…});my$route=$r->patch('/:foo'=>(agent=>qr/Firefox/)=>sub($c){…});
生成Mojolicous::路线::路线仅对象匹配补丁
请求,采用与相同的参数“任何”(除了要匹配的HTTP方法,这些方法是隐含的)。请参见Mojolicuis::指南::教程和Mojolicious::辅助线::路由了解更多信息。
#带目的地的路线$r->patch('/user')->to('user#update');
我的$route=$r->帖子;我的$route=$r->post('/:foo');我的$route=$r->post('/:foo'=>sub($c){…});my$route=$r->post('/:foo'=>sub($c){…}=>'name');我的$route=$r->post('/:foo'=>{foo=>'bar'}=>sub($c){…});我的$route=$r->post('/:foo'=>[foo=>qr/\w+/]=>sub($c){…});my$route=$r->post('/:foo'=>(agent=>qr/Firefox/)=>sub($c){…});
生成Mojolicious::路由::路由仅对象匹配邮政
请求,采用与相同的参数“任何”(除了要匹配的HTTP方法,这是隐含的)。请参见Mojolicuis::指南::教程和Mojolicious::辅助线::路由了解更多信息。
#带目的地的路线$r->post('/user')->to('user#create');
我的$route=$r->put;我的$route=$r->put('/:foo');my$route=$r->put('/:foo'=>sub($c){…});my$route=$r->put('/:foo'=>sub($c){…}=>'name');我的$route=$r->put('/:foo'=>{foo=>'bar'}=>sub($c){…});我的$route=$r->put('/:foo'=>[foo=>qr/\w+/]=>sub($c){…});my$route=$r->put('/:foo'=>(agent=>qr/Firefox/)=>sub($c){…});
生成Mojolicious::路由::路由仅对象匹配PUT(输出)
请求,采用与相同的参数“任何”(除了要匹配的HTTP方法,这是隐含的)。请参见Mojolicuis::指南::教程和Mojolicious::辅助线::路由了解更多信息。
#带目的地的路线$r->put('/user')->to('user#replace');
$r=$r->删除;
从父级删除路由。
#完全删除路由$r->查找('fo')->删除;#将路由重新附加到新的父级$r->any('/foo')->add_child($r->find('bar')->remove);
my$path=$r->render({foo=>'bar'});
将带有参数的路由渲染到路径中。
my$root=$r->root;
这个Mojolicious::路线对象是此路由的后代。
我的$要求=$r->要求;$r=$r->需要(foo=>1);$r=$r->需要(foo=>1,bar=>{baz=>'yada'});$r=$r->需要([foo=>1,bar=>{baz=>'yada'}]);
激活此路线的条件。请注意,这会自动禁用路由缓存,因为条件太复杂,无法进行缓存。
#有条件和目的地的路线$r->get('/foo')->需要(host=>qr/mojolicious\.org/)->to('foo#bar');
我的$方法=$r->建议的方法;
建议使用HTTP方法到达此路由,GET(获取)
和邮政
首选。
my$defaults=$r->to;$r=$r->到(action=>'foo');$r=$r->到({action=>'foo'});$r=$r->到(“控制器#action”);$r=$r->到(“控制器#action”,foo=>“bar”);$r=$r->到(“控制器#action”,{foo=>“bar”});$r=$r->to(Mojolicios->new);$r=$r->to(Mojolicios->new,foo=>'bar');$r=$r->to(Mojolicios->new,{foo=>'bar'});$r=$r->到(“我的应用程序”);$r=$r->到('MyApp',foo=>'bar');$r=$r->到('MyApp',{foo=>'bar'});
设置此路由的默认参数。
我的$str=$r->to_string;
对整个路线进行严格化。
我的$route=(sub($c){…})下的$r->;我的$route=$r->under('/:foo'=>sub($c){…});我的$route=$r->under('/:foo'=>{foo=>'bar'});my$route=$r->在('/:foo'=>[foo=>qr/\w+/])下;my$route=$r->在('/:foo'=>(agent=>qr/Firefox/))下;我的$route=$r->under([format=>['json','yaml']]);
生成Mojolicous::路线::路线具有自己的中间目的地的嵌套路由的对象,采用与相同的参数“任何”(除了要匹配的HTTP方法,这些方法不可用)。请参见Mojolicuis::指南::教程和Mojolicious::辅助线::路由了解更多信息。
#较长版本$r->any('/:foo'=>sub($c){…})->inline(1);#两条路由之间共享的中间目的地和前缀我的$auth=$r->under('/user')->to('user#auth');$auth->get('/show')->to('#show');$auth->post('/create')->to('#create');
我的$route=$r->websocket;我的$route=$r->websocket('/:foo');我的$route=$r->websocket('/:foo'=>sub($c){…});my$route=$r->websocket(“/:foo”=>sub($c){…}=>“name”);我的$route=$r->websocket('/:foo'=>{foo=>'bar'}=>sub($c){…});我的$route=$r->websocket('/:foo'=>[foo=>qr/\w+/]=>sub($c){…});my$route=$r->websocket('/:foo'=>(agent=>qr/Firefox/)=>sub($c){…});
生成Mojolicious::路由::路由对象只匹配WebSocket握手,采用与相同的参数“任何”(除了要匹配的HTTP方法,这是隐含的)。请参见Mojolicuis::指南::教程和Mojolicious::辅助线::路由了解更多信息。
#带目的地的路线$r->websocket(“/echo”)->to(“示例#echo”);
除了“属性”和“方法”您还可以调用提供的快捷方式“root”在Mojolicious::路由::路由物体。
#添加“firefox”快捷方式$r->root->add_shortcut(firefox=>sub($r,$path){$r->get($path,agent=>qr/Firefox/);});#使用“firefox”快捷方式生成路由$r->firefox('/welcome')->to('firefox#welcome'');$r->firefox('/bye')->to('firefox#bye');
Mojolicious公司,Mojolicious::指南,https://mojolicious.org.