Silverstripe自定义控制器和视图(模板)如何工作?

时间:2012-11-14 08:45:18

标签: php url-routing silverstripe

我使用以下代码创建了控制器./mysite/code/FileManager.php ...

class FileManager_Controller extends Controller
{
    public function upload()
    {
        echo 'It works!!';
    }
}

当我输入http://example.com/filemanager/upload时,这可以正常工作。

我创建了模板文件themes/simple/templates/FileManager.ss。我想在这里编写要上传的HTML,它应该反映我何时输入http://example.com/filemanager/upload。这该怎么做?谢谢。

2 个答案:

答案 0 :(得分:1)

'upload'是SilverStripe中的一项操作 - 您是否尝试过创建FileManager_upload.ss文件?

答案 1 :(得分:1)

因为您使用直接控制器来处理请求,所以系统不知道您要渲染的内容或方式。使用CMS并呈现Page时,通常会为您处理。

所以你必须告诉它要呈现什么以及如何呈现。在它最简单的形式中,这看起来像是:

class FileManager_Controller extends Controller
{
    public function upload()
    {
        return $this->renderWith('FileManager');
    }
}

这将为您的FileManager_Controller课程提供FileManager.ss模板。

相关问题