Я хотел бы создать приложение Nextcloud и следовать этому уроку
https://docs.nextcloud.com/server/16/developer_manual/app/intro.html
После создания скелета приложения я добавил несколько маршрутов в rout.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 предоставляет индексtemplate
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>
Когда я тестирую свое приложение и нажимаю на навигационную ссылку, маршрутизация не работает.URL изменяется, но отображается только мой индексный файл.
Я думал, что когда вызывается этот маршрут 'page#test'
, в папке шаблонов есть ссылка на файл представления.
Чего мне не хватает?