0

我目前正在制作一个仅限框架的SilverStripe网站,到目前为止一切都很好 - 我已经设置了一个控制器和一些模型,一切都很好,但是我在创建登录系统时遇到了问题。

$Form您访问时通常显示登录表单的变量似乎/admin没有显示任何内容。应该是?我以为它会,但它没有做。

我想我的问题是 - 仅框架网站是否使用默认登录表单,如果是,那么解决表单未显示在我的网站上的原因的第一步是什么?它可能与路线有关吗?

这是我的代码:

路线.yml

---
Name: app
After: 'framework/routes'
---
Director:
  rules:
    '': 'GanttController'
    '$URLSegment//$Action/$ID/$OtherID': 'GanttController'

甘特控制器.php

<?php

class GanttController extends BaseController {

    public function index() {
        return $this->customise(new ArrayData(array(
            'Title' => 'Gantt Chart'
        )))->renderWith(array(
            'GanttController',
            'Page'
        ));
    }

页面.ss

<html>
    <head>
        <title>$Title</title>
    </head>
    <body>
        <div class="header">
            <h1>Gantt</h1>
        </div>
        <div class="pane">
            $Layout
            $Form
        </div>
    </body>
</html>

如果我将该行添加'admin': 'AdminRootController'到我的 YAML 路由并转到/admin,而不是加载我的项目,它会加载get started with the SilverStripe framework页面,它将您链接到有关添加控制器/模板的文档。

4

1 回答 1

0

假设您有一个使用它的模板,该框架应该显示 $Form 。

该框架仍被设计为具有前端,这意味着两件事:

  1. 框架将像往常一样使用模板/Page.ss 作为前端的默认模板
  2. 如果您想要管理员/或安全登录表单,您需要访问此控制器
    ,您可以通过 3 种方式执行此操作:
    • 通过已经存在的路线访问它:/admin/Security/login?backURL=/the/url/to/redirect/to/after/login
    • 使用 http 重定向使/重定向到/admin
    • 如果您根本不需要前端,您只需使用Page.ss登录模板并通过使用以下 yml 配置将路由分配/给 来显示相同​​的内容:/admin/AdminRootController

文件:mysite/_config/routes.yml

---
Name: mysiteroutes
Before: '*'
After:
  - '#rootroutes'
  - '#coreroutes'
  - '#modelascontrollerroutes'
  - '#adminroutes'
---
Director:
  rules:
    '': 'AdminRootController'

如果这不能回答您的问题并且您仍然无法显示表单,请粘贴您的代码(您的路由配置、您的 Page.ss 以及您可能拥有的任何相关控制器)。

于 2013-10-25T00:24:34.090 回答