Currently there is no way to get the path or route name from Url object in twig and it makes some things a bit complicated.
For example I want to put webfont icons next to user menu links in the menu template but I have no way of knowing there the meni item link is pointing to since it holds only the Url object and I cannot retrieve any data out of it.

Therefore I think we should have functions in twig so we can work wirh Url objects.
This is the original issue I had: http://drupal.stackexchange.com/questions/177900/how-to-get-uri-from-url...

Comments

Anonymous’s picture

ivanjaros created an issue. See original summary.

dawehner’s picture

I'm pretty sure that {{ url.routeName }} should actually work. Do you mind trying it out?

Anonymous’s picture

I tried that, and it is not working. I even tried Twig's attribute() but there is just no way to get the info.

dawehner’s picture

Which examples do we talk about, so like which template ...

dawehner’s picture

Oh right I guess the url object here might be a generatedUrl object

star-szr’s picture

Can this be done in preprocess? To me it feels like an uncommon use case and therefore not sure we should add it to core.

joelpittet’s picture

I don't think it's that un-common to want to drill into url objects and passing GeneratedUrl to the template seems a bit silly (because the bubblableMetataObject is weird and less useful to me). Having an actual Url object passed to the template would be ideal and @dawehner's original assertion would have been correct and problem solved.

Just throwing this out there yet way to late of an idea, instead of bubbling, just fire events containing the metadata needed. It seems a bit more straight forward. Or maybe just create a traight for this and add it to Url object may be less drastic change.

Anyways... rant over. @ivanjaros which template are you referring to?

dawehner’s picture

I'm a bit confused about the GeneratedUrl object in itself ... how does it even work, it has neither toString/__toString nor implements any of the other common interfaces?

Anonymous’s picture

joel: if you look at the link in the story description, you can see that I was trying to customize the menu template.

joelpittet’s picture

@dawehner same boat, no idea. @ivanjaros can you confirm it's the GeneratedUrl you are getting?

by 'traight' i meant trait... reads the same:P

Anonymous’s picture

joel: it was Url. It might have changed now with the latest RC. I would have to update(im on RC2 now) and see, but I'm sure it was Url. I haven't heard of GeneratedUrl yet :D

dawehner’s picture

So if you want to get the URL as string, you can use {{ url.tostring }}

joelpittet’s picture

Version: 8.0.x-dev » 8.1.x-dev
Parent issue: » #1696760: TwigExtension: Filters and Functions

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.0-beta1 was released on March 2, 2016, which means new developments and disruptive changes should now be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.0-beta1 was released on August 3, 2016, which means new developments and disruptive changes should now be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.0-alpha1 will be released the week of January 30, 2017, which means new developments and disruptive changes should now be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

smustgrave’s picture

Status: Active » Postponed (maintainer needs more info)
Issue tags: +stale-issue-cleanup

Thank you for sharing your idea for improving Drupal.

We are working to decide if this proposal meets the Criteria for evaluating proposed changes. There hasn't been any discussion here for over 8 years which suggests that this has either been implemented or there is no community support. Your thoughts on this will allow a decision to be made.

Since we need more information to move forward with this issue, the status is now Postponed (maintainer needs more info). If we don't receive additional information to help with the issue, it may be closed after three months.

Thanks!

smustgrave’s picture

Status: Postponed (maintainer needs more info) » Closed (outdated)

Think this can be closed out after years of inactivity. There's also twig_tweak that may address this feature request. If still valid we can always re-open

Thanks all

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.