我有2个版本的网站。一个位于站点的根URL中,一个使用路由前缀。它们使用相同的资源,但在从前缀路由访问时提供不同的链接:
Route::get('/', function(){
View::share('outgoing_url','something.com');
//regular links here
});
以及上面的一些指向不同的路线或
Route::group(array('prefix'=>'tour'), function(){
View::share('outgoing_url','somethingelse.com');
//different links here
});
View :: share不起作用,因为它使用最后分配的内容,所以我试图找到解决此问题的方法。
此外,当我在通过前缀的视图中使用HTML :: link()时,一切仍然指向站点的根URI而不是“tour”前缀。有没有办法区分这两者?现在我遇到了这个问题,唯一的解决方案似乎是制作响应路由的视图和控制器的相同副本。但至少可以说这种做法似乎很愚蠢。
我希望我能理解这个问题。
答案 0 :(得分:1)
<?php
HTML::macro('myLink', function($url, $title = null, $attributes = array(), $secure = null)
{
if (Request::segment(1) === 'tour')
{
$url = 'tour/'.$url;
}
return HTML::link($url, $title, $attributes, $secure);
});
?>
HTML::myLink(...);
答案 1 :(得分:0)
只需使用之前的过滤器 - 并将其设置为
App::before(function($request)
{
if (Request::segment(1) === 'tour')
{
View::share('outgoing_url','tour.com');
}
else
{
View::share('outgoing_url','other.com');
}
});