1

我试图了解 URL 映射的工作原理。我已经浏览了很多页,但我似乎无法理解我正在尝试做的事情。

它真的很简单,我使用 DataObjects 作为页面方法,并且我有一个写入成员类的成员扩展。我有典型的动作,显示、编辑、添加。

所以如果我去 www.mywebsite.com/members/show/1 我可以看到第一个用户。如果我将显示更改为编辑,我可以编辑第一个用户。现在如果我去 www.mywebsite.com/members/add 我可以创建一个新用户。由于我在 add 方法中创建的功能,这一切都按预期工作。

我的问题是,当您访问任何网站时,您不会通过访问 members/add 来注册该网站,而是通过访问 website.com/Register 或类似的方式注册。从代码管理的角度来看,让代码保持现在的样子对我来说要容易得多。我不想创建一个注册页面并将代码移到那里,而是想弄清楚是否可以访问 www.mywebsite.com/Register 并让它加载 www.mywebsite.com/members /添加。我不是在谈论会更新 url 的重定向链接,我希望用户仍然在 url 中看到 Register 而看不到 /members/add。

反之亦然,如果用户要访问 www.mywebsite.com/members/add,我希望链接更新为注册或说找不到页面。

Silverstripe 框架可以做到这一点吗?

我不是 100% 确定,但我相信这称为 URL 屏蔽。

4

1 回答 1

1

这是很有可能的,首先我建议你看一下......

silverstripe-memberprofiles

...因为即使您不想使用现有模块,我相信也会有有用的信息。有一个“纯”路由(即 silverstripe no cms)的一个很好的例子,它导致“嵌套”路由 - 这是我认为你所要求的,所以我强烈建议阅读下面的幻灯片,然后阅读创建的 todo 应用程序

silverstripe-framework-building-without-cms

待办事项应用源

于 2015-10-26T15:52:04.993 回答