使用视图

  • 通过方法: view() 渲染一个视图文件
  • 通过 \Swoft::getBean('renderer')->rander('view file') 渲染一个视图文件
  • 在控制器的action注释上还可以快捷的使用 @View() 来使用

使用示例

  1. /**
  2. * 控制器demo
  3. *
  4. * @Controller(prefix="/demo")
  5. */
  6. class DemoController
  7. {
  8. /**
  9. * 视图渲染demo - 没有使用布局文件(请访问 /demo/view)
  10. * @RequestMapping()
  11. * @View(template="index/index") - 将会渲染 `resources/views/index/index.php` 文件
  12. */
  13. public function actionView()
  14. {
  15. $data = [
  16. 'name' => 'Swoft',
  17. 'repo' => 'https://github.com/swoft-cloud/swoft',
  18. 'doc' => 'https://doc.swoft.org/',
  19. 'method' => __METHOD__,
  20. ];
  21. // 根据请求适应返回类型,如请求视图,则会根据 @View() 注解来返回视图
  22. // 这里return的值将会传递给视图
  23. return $data;
  24. }
  25. /**
  26. * 视图渲染demo - 使用布局文件(请访问 /demo/layout)
  27. * @RequestMapping()
  28. * @View(template="demo/content", layout="layouts/default.php")
  29. */
  30. public function actionLayout()
  31. {
  32. $layout = 'layouts/default.php';
  33. $data = [
  34. 'name' => 'Swoft',
  35. 'repo' => 'https://github.com/swoft-cloud/swoft',
  36. 'doc' => 'https://doc.swoft.org/',
  37. 'doc1' => 'https://swoft-cloud.github.io/swoft-doc/',
  38. 'method' => __METHOD__,
  39. 'layoutFile' => $layout
  40. ];
  41. return $data;
  42. }
  43. }

如何查找视图

  • 若你不添加后缀,会自动追加配置的默认后缀
  • 使用相对路径时,将会在我们配置的视图目录里找到对应的view文件
  • 使用绝对路径时,将直接使用它来渲染。(支持使用路径别名 @res/views/my-view.php)

使用布局文件

使用布局文件,方式有两种:

  1. 在配置中 配置默认的布局文件,那么即使不设置 layout,也会使用默认的(视图的可用配置请看上一节)
  2. 如示例一样,可以手动设置一个布局文件。它的优先级更高(即使有默认的布局文件,也会使用当前传入的替代。)
  3. 你可以传入 layout=false 来禁用渲染布局文件

视图加载静态文件

Swoft 可以提供静态资源访问的支持,将静态文件放置于根目录下的 public 目录内即可,下面是一个引用的示例,注意引用时无需包含 public

  1. <script type="text/javascript" src="/static/some.js"></script>