管理仅限框架的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'