[002] Symfony 4 创建页面

2019-03-03  本文已影响0人  观星汉

使用 symfony/website-skeleton 初始化项目后, 现在来添加第一个自定义网页.

leo@MacMini8:~/Documents/symfony/demo$ composer require annotations
<?php
/**
 * src/Controller/FirstController.php
 */

// 命名空间 App 已经在 composer.json 里已经指向到 src 目录.
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class FirstController
{
    /**
     * 通过: http://127.0.0.1:8000/hello 访问此方法.
     * 
     * @Route("/hello", name="url_hello")
     */
    public function hi()
    {
        $name = 'Baby';

        return new Response(
            sprintf('<html><body>Hello: %s!</body></html>', $name)
        );
    }
}

使用 bin/console server:run 启动服务器, 浏览器打开: http://127.0.0.1:8000/hello 可以正常访问到 Hello: Baby!

QQ20190303-144016@2x.png

创建一个视图文件, 用默认的 twig 模板引擎.

{# templates/hello/say.html.twig #}
{% extends 'base.html.twig' %}

{% block body %}
<h1>{{ name }} say: Hello!</h1>
{% endblock %}

修改 Controller, 增加一个新方法: say

//...
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class FirstController extends AbstractController
{
    /**
     * @Route("/say", name="url_say")
     */
    public function say()
    {
        $name = 'Baby';

        return $this->render(
            'hello/say.html.twig', //指定视图模板在 templates 文件夹中的路径
            ['name' => $name] // 模板中传递的数据
        );
    }
    //....
}

使用浏览器访问: http://127.0.0.1:8000/say 页面输出正常.

QQ20190303-143848@2x.png
上一篇 下一篇

猜你喜欢

热点阅读