Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Trailing slash in menu links


Go to End


5 Posts   3186 Views

Avatar
Vinnie

Community Member, 2 Posts

4 March 2011 at 8:53am

I've searched the forum a few times now but can't find the answer what i'm looking for..

Why does SilverStripe add a trailing slash at the end of menu links?
Is it necessary and can it be removed? If so, how?

Avatar
Vinnie

Community Member, 2 Posts

12 March 2011 at 6:57am

no one?
there must be some reason why links end with a slash and somehow it has to be possible to remove those 'trailing slashes' in (menu)links..

Avatar
swaiba

Forum Moderator, 1899 Posts

12 March 2011 at 8:36am

I think if you gave a more two-year-old description with a screen print, a code fragment or one of the "menu links" you are talking about I might have answered - but as it is I really don't understand what it is...

Avatar
(deleted)

Community Member, 473 Posts

12 March 2011 at 9:31am

Vinnie, the slash is added in SiteTree::RelativeLink($action), which is called by SiteTree::Link($action), in the return statement:

 return Controller::join_links($base, '/', $action);

While the slash is not needed (you can try it by removing the trailing / from any of your URLs), it can't be easily removed while keeping the upgrade process simple.

Avatar
neilcreagh

Community Member, 136 Posts

24 March 2012 at 4:38am

Hi Vinnie,

I stumbled across this post because I was having trouble linking to a dataobject because of the slash being added. I was doing something like this:

$Link/show/$ID

But instead you can customise the Link() method on the data object itself (or page class) - and then just use $Link

I found this solution posted by Uncle Cheese on this post:

function Link() 
{ 
return $this->Page()->Link("show")."/".$this->ID; 
}