管理仅限框架的SilverStripe站点上的登录
我目前正在尝试制作一个只支持框架的管理仅限框架的SilverStripe站点上的登录,silverstripe,Silverstripe,我目前正在尝试制作一个只支持框架的SilverStripe站点,到目前为止还不错-我已经设置了一个控制器和一些模型,一切都很好,但是我在创建登录系统方面遇到了问题 当您访问/admin时,通常显示登录表单的$Form变量似乎没有显示任何内容。应该吗?我原以为它会的,但它没有这样做 我想我的问题是-纯框架网站是否使用默认的登录表单,如果是,那么解决为什么表单没有显示在我的网站上的问题的第一步是什么?这可能与路线有关吗 这是我的密码: 地址:yml --- Name: app After: 'fra
SilverStripe
站点,到目前为止还不错-我已经设置了一个控制器和一些模型,一切都很好,但是我在创建登录系统方面遇到了问题
当您访问/admin
时,通常显示登录表单的$Form
变量似乎没有显示任何内容。应该吗?我原以为它会的,但它没有这样做
我想我的问题是-纯框架网站是否使用默认的登录表单,如果是,那么解决为什么表单没有显示在我的网站上的问题的第一步是什么?这可能与路线有关吗
这是我的密码:
地址:yml
---
Name: app
After: 'framework/routes'
---
Director:
rules:
'': 'GanttController'
'$URLSegment//$Action/$ID/$OtherID': 'GanttController'
GanttController.php
<?php
class GanttController extends BaseController {
public function index() {
return $this->customise(new ArrayData(array(
'Title' => 'Gantt Chart'
)))->renderWith(array(
'GanttController',
'Page'
));
}
如果您有一个使用它的模板,框架应该显示$Form
该框架仍然设计为具有前端,这意味着有两件事:
框架将一如既往地使用templates/Page.ss作为前端的默认模板
如果需要管理员/或安全登录表单,则需要访问此控制器
您可以通过三种方式执行此操作:
- 通过已经存在的路径访问它:
/admin
或/Security/login?backURL=/the/url/to/redirect/to/after/login
- 使用http重定向使
/
重定向到/admin
- 如果您根本不需要前端,只需使用
Page.ss
作为登录模板,并通过以下yml配置将路径/
分配到AdminRootController
,使/
显示与/admin
相同的内容:
文件:mysite/_config/routes.yml
---
Name: mysiteroutes
Before: '*'
After:
- '#rootroutes'
- '#coreroutes'
- '#modelascontrollerroutes'
- '#adminroutes'
---
Director:
rules:
'': 'AdminRootController'
如果这不能回答您的问题,并且您仍然无法显示表单,请粘贴您的代码(您的路由配置、Page.ss以及您可能拥有的任何相关控制器) 嗯,模板看起来不错。如果您访问/Security/login
,并尝试创建一个包含$Form
的文件templatex/Secuirty.ss
,您会看到什么?这样,SilverStripe应该使用此模板而不是登录表单的Page.ss
。(另外,别忘了?flush=1
)控制器的索引或某处不应该有Security::permissionFailure()
,所以SilverStripe知道这需要登录才能访问吗?否则,登录表单将不会显示?直接进入/Security/login
与进入/admin
的仅框架介绍页面的操作相同。当您未以管理员身份登录时,是否可以刷新?文件系统中的Atm清空silverstripe缓存
是我的临时刷新…如果您的站点处于开发模式,您应该能够在不登录的情况下刷新。但是如果你不能以“正常”的方式建立你的网站,那么可能会有更大的潜在问题?!很高兴你让它工作了。对于一个新问题,请打开一个新问题,将问题分开,以便其他人更容易找到相同的问题
---
Name: mysiteroutes
Before: '*'
After:
- '#rootroutes'
- '#coreroutes'
- '#modelascontrollerroutes'
- '#adminroutes'
---
Director:
rules:
'': 'AdminRootController'