【问题标题】:How to render front-end pages in Slim Framework route?如何在 Slim Framework 路由中渲染前端页面?
【发布时间】:2017-03-31 03:25:15
【问题描述】:

我的文件夹中安装了 Slim,我想知道是否可以从 Slim 路由呈现完整的 html/css/js 页面。

假设这是控制路由的文件:

rControl.php

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require '../vendor/autoload.php';

$app = new \Slim\App;
$app->get('/myroute', function (Request $request, Response $response){

    /* I want to render the page when enter in this route*/ 

return $response;
});

$app->run();

并假设我有一个带有 css 格式的自定义 html 文件:

myTemplate.html

<!DOCTYPE html>
<html lang="pt-br">
<head>

<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>My title </title>
</head>

<link rel="stylesheet" href="css/bootstrap-theme.min.css">
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/style.min.css">

<script src="jquery-2.2.4.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/engine.js"></script>

<body>

<h1> Some text </h1>

<p> example text here </p>

<div> hi! more content... </div>

</body>
</html>

问题是:当用户转到路由"/myroute"时如何显示myTemplate.html页面的内容?

【问题讨论】:

    标签: php routes slim


    【解决方案1】:

    最简单的方法是使用PHP-View

    <?php
    use Psr\Http\Message\ServerRequestInterface as Request;
    use Psr\Http\Message\ResponseInterface as Response;
    use Slim\Views\PhpRenderer;
    
    require '../vendor/autoload.php';
    
    $app = new \Slim\App;
    $container = $app->getContainer();
    $container['renderer'] = new PhpRenderer("./templates");
    
    $app->get('/myroute', function (Request $request, Response $response){
        return $this->renderer->render($response, "/myTemplate.html");
    });
    
    $app->run();
    

    传统上,我们对模板使用.phtml 扩展名来表明它们可以包含PHP 代码。您可以通过数组将数据作为render() 的第三个参数传递给模板文件。

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      • 2013-09-19
      • 1970-01-01
      • 2019-03-19
      • 2017-02-14
      • 1970-01-01
      相关资源
      最近更新 更多