我想创建一个Nextcloud应用并遵循本教程
https://docs.nextcloud.com/server/16/developer_manual/app/intro.html
创建应用程序框架后,我向 routes.php
添加了一些路由<?php
return [
'routes' => [
['name' => 'page#index', 'url' => '/', 'verb' => 'GET'],
['name' => 'test#index', 'url' => '/test/:value', 'verb' => 'GET'],
['name' => 'user#index', 'url' => '/user', 'verb' => 'GET']
]
];
我按照本指南创建了一些控制器
https://docs.nextcloud.com/server/16/developer_manual/app/requests/controllers.html
我的 PageController.php 提供了索引模板
public function index() {
return new TemplateResponse('demoappct', 'index'); // templates/index.php
}
TestController.php 提供测试模板
public function index() {
return new TemplateResponse('demoappct', 'test'); // templates/test.php
}
和 UserController.php 提供用户模板。
我用这些路线扩展了 navbar.php
<ul>
<li>
<a href="#/">
Main page
</a>
</li>
<li>
Header for grouped links
</li>
<li>
<ul>
<li>
<a href="#/test/12345">
Route with param
</a>
</li>
<li>
<a href="#/user">
User Info
</a>
</li>
</ul>
</li>
</ul>
在 index.php 所在的模板文件夹中,添加了视图文件 test.php 和 user.php 。
我将生成的 index.php 更改为
<?php
script('demoappct', 'index');
style('demoappct', 'base');
?>
<div id="app">
<div id="app-navigation">
<?php print_unescaped($this->inc('nav')); ?>
<?php print_unescaped($this->inc('settings')); ?>
</div>
<div id="app-content">
<div id="app-content-wrapper">
<?php print_unescaped($this->inc('index/content')); ?>
</div>
</div>
</div>
请查看$this->inc('index/content')
。我为要渲染的每个视图文件创建了一个 content.php 文件。
因此 test.php 会调用
<?php print_unescaped($this->inc('test/content')); ?>
和 user.php 会调用
<?php print_unescaped($this->inc('user/content')); ?>
这些内容文件当前为空。它们只包含类似
的内容<h1>Test Page</h1>
当我测试我的应用并单击导航链接时,路由无效。网址发生变化,但只有我的索引文件被渲染。
我认为,调用此路由'page#test'
时,会在template文件夹中引用视图文件。
我想念什么?