symfony2实战入门信息录入4:在twig模板中呈现

twig是一个很棒的模板引擎,最棒的php模板引擎。它能够很灵活的组织我们的html代码并能够自定义函数等,给用户呈现一个很友好的页面。现在开始,还记得上一章节的代码吗?今天我们就把它按部就班的放到twig中并用symfony运行喽!

 第一步,新建一个bundle

新建一个bundle,要输入以下命令

会出现以下配置信息,下面详细解释如何填写配置

 

第二步,将html代码装载到twig引擎中

在 src\Nlc\InformationBundle\Resources\views 路径下创建两个twig文件,作为login和admin的基础模板

base.html.twig 作为login页面的基础模板

layout.html.twig作为admin页面的基础模板

然后把不同的布局模块化,分别把 顶部导航、左导航、列表区域、添加页面和编辑页面分成不同的twig模板,当程序需要时将其引入到相应的模板中。

顶部导航页面命名为itemtophead.html.twig,在src\Nlc\InformationBundle\Resources\views中新建一个文件夹Information,并把itemtophead.html.twig放入其中

左导航页面命名为itemleftmenu.html.twig,也把它放入到src\Nlc\InformationBundle\Resources\views\Information路径中

列表区域页面命名为itemrightlist.html.twig,也把它放入到src\Nlc\InformationBundle\Resources\views\Information路径中

添加页面命名为itemadd.html.twig,也把它放入到src\Nlc\InformationBundle\Resources\views\Information路径中

编辑页面命名为itemupdate.html.twig,也把它放入到src\Nlc\InformationBundle\Resources\views\Information路径中

好了基本的我们已经完成了,下面我们把它们组装到一起吧。

在 src\Nlc\InformationBundle\Resources\views\Information 新建一个login.html.twig 作为登录页面

在 src\Nlc\InformationBundle\Resources\views\Information 新建一个admin.html.twig 作为管理页面,把需要的模块加入进来

 

第三步,在controller中渲染模板并浏览页面

打开 DefaultController.php 添加以下代码

因为使用annotation,所以@Route(“”)  指引应用程序的路由,@Template(“”) 来渲染应用程序的模板。

具体控制器的annotation配置和使用可查看

http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/index.html

好了,我们打开浏览器,访问 http://nlcinformation.local/login和http://nlcinformation.local/admin

001nlclogin

管理页面

002nlcadmin

 

第四步,生成资源文件

虽然http://nlcinformation.local/admin页面可以浏览,但是还是有一些问题,也就是说图片不能显示,我们把图片资源拷贝到目录(src\Nlc\InformationBundle\Resources\public\images\avatar1_small.jpg)

再次浏览还是没有,为什么呢,因为我们的web目录资源下还没有图片资源,那怎么办

我们只需要生成相应的资源即可,要输入下面的命令:

你的资源会生成到web\bundles\nlcinformation目录下

然后修改img的src代码

将 itemtophead.html.twig 和 itemrightlist.html.twig 中

更改为

ok再次浏览已经可以看到图片了。

2 Comments

    • 试试检查
      1.不知你是否已经rewrite成功
      2.或者你尝试 http://nlcinformation.local/app_dev.php/login 试一试
      3.检查controller文件的Route是否正确
      symfony2实战入门信息录入这几篇可以了解symfony的CURD(增删改查)和模板的简单使用。
      但是由于时间原因我并没有把模板和symfony程序逻辑整合到一起(对此表示抱歉),也就是所他们是分离的,如果想实现截图效果并真正运行,可能后面需要你根据理解把模板整合到相应的twig中,已实现最终效果。
      《jobeet》是一个完整体系并知名的学习案例,得到很多初学symfony开发者的喜爱
      关于后面的登陆和注册深入实现你可以查看《KU案例》会对你有很大帮助

发表评论