How can I create a "related content" view but display it as a page with an url alias? I have created a "related content" view but display it as a page instead of what would more traditionally be a block.

Let's say I have three content types, event, photo and speaker. Each photo and speaker node have an entity reference to an event node. 

Photo ----> EVENT &lt;---- Speaker

When I view an event node, I would like to have a link to a page that displays all of the photos that reference that event and a similar link/page to display all speakers that reference the event. I have created a view page for each of the subordinate content types (photo/speaker) that takes an event nid as an argument and displays all the nodes that reference that parent node, but there are a number of issues related to the url of these view pages which follow the structure /node/%/photos.

Aesthetically these url's are not ideal. I would prefer to have the url contain the url alias of the event node. For example /event1/photos and event2/photos etc. would all be pointing to the same view but passing the bid of the event as the argument to the view.

I am also open to the possibility that I am going about this in the wrong way so any advice would be appreciated.
You could create two new views for this. For example:


Create a new page view and name it something like Event_Photos.
Set the path to be something like `event/photos/%'.
Add an argument of type Content:nid.
Setup a relationship using the field that references the photos from the event content-type.
Add a filter using the above relationship of type Content:Type = photo.
You will also need to use the relationship for all your fields.
In your first view, rewrite the output for the photo link to event/photos/nid.
Create a second view for your other content type and follow the above steps.


It would also be possible to use a url in the form your-event-title/photos. Then you would have to change the path to %/photos and use a argument like Content:Title instead.