THINKPHP SMARTY 下的 switch标签无法正常显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了THINKPHP SMARTY 下的 switch标签无法正常显示相关的知识,希望对你有一定的参考价值。

<switch name='1'>
<case value="0">运营工作规划</case>
<case value="1">美工工作规划</case>
<case value="2">推广工作规划</case>
</switch>

本来应该只显示第二项,结果三星都显示了,很奇怪

参考技术A <switch name='1'>

name是变量,确定你的变量是1?追问

对,我现在就是测试,结果还是显示了3条,晕了

追答

哈哈,还对呢
你这个1是值,不是变量,变量命名规则:字母或_开头,不能数字开头

打个比方Thinkphp那边传过来变量type的值为1 $this->type = 1;
那应该是

运营工作规划
美工工作规划
推广工作规划

当然前提是你模板中switch格式是正确的情况下,因为我没用过tp+smarty

追问

我直接为了测试,把变量换成数值不行么,如果变量=1,那 这样测试有问题么

追答

不行,name里只能放变量,不能放值

composer方式安装thinkphp5,安装smarty

转载地址:

https://my.oschina.net/inuxor/blog/750717

 

composer

是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。

如今类似的包管理工具越来越多了,java有marven,js有npm,ruby有gem…… php自然就有composer。

安装composer

网上能搜到各种装法,其实仅仅是一点微小的工作,哪有那么麻烦。

  1. 看这里的官方文档,那个框里的四行代码分别执行一遍就齐活了。注意人下边那个

    WARNING: Please do not redistribute the install code. It will change with every version of the installer. Instead, please link to this page or check how to install Composer programmatically.

    别直接复制代码,因为每次新版都有变化。那个链接就别管它了,自找麻烦。

  2. 或者你跟我一样懒,并且恰好用着debian/deepin/ubuntu等等debian系的linux,大招来了

    sudo apt install composer
    

    所以说一定要用linux开发啊, 然而并不是。。。 windows自然有windows的路数:Composer-Setup.exe

切换到朝内源

但凡是包管理,都牵扯源,自动帮你下载包并解决依赖,包从哪下?源。而事情牵扯到我朝,就可能变得有点麻烦,你懂。FQ?不和谐,幸好有这个项目:Packagist / Composer中国全量镜像 切换源啊,说出来高大上,很麻烦吧:

  1. composer config -g repo.packagist composer https://packagist.phpcomposer.com
    
    就这么简单,没有然后。如果实在有然后,就是composer的各种操作方式了,那不在本文范围

安装thinkphp5

一定要阅读文档

composer create-project topthink/think whatever_you_like_name  --prefer-dist

完了,安装tp5到这步就完了

你说composer多好多好,这有什么好?我直接下载程序包扔www根目录不就行了?比用composer更省事不是吗 所以说,我们有了composer update这条命令,意思是更新当前项目。

cd whatever_you_like_name
composer update

如果一切正常会有类似如下显示

Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Updating topthink/think-installer (v1.0.6 => v1.0.7)
    Checking out b711e133468c07ebff1cb10f1b2691601dffa257

  - Removing topthink/framework (dev-master 7d5e5fb)
  - Installing topthink/framework (5.0)
    Downloading: 100%

tp5官方修复了bug,优化了代码,重构了某个细节,通过composer update就能方便的获得,前提是你别直接乱改框架本身的东西。

安装扩展

composer的正式作用是

dependency manager for PHP

就是说你缺啥就用它补啥。比如缺心眼,composer require 心眼

在tp中我们缺啥?看看tp官方给提供了啥标配 助手函数,image操作,验证码,单元测试之类的,这哪够啊。我需要更强大的包,但我不知道叫啥,该上哪找? 这里! 进去搜就行了。 好,搜出来了

riverslei/payment 集成支付宝、微信支付等流行的支付接口,后续会持续跟进中

这个牛掰,怎么装?所以说看文档啊。还是在你刚才执行update的那个目录

composer require riverslei/payment

执行完了,就装上了。检查一下你的whatever_you_like_name/composer.json文件,留神到require部分,会类似这样

    "require": {
        "php": ">=5.4.0",
        "topthink/framework": "^5.0",
        "topthink/think-helper": "dev-master",
        "topthink/think-captcha": "dev-master",
        "topthink/think-queue": "dev-master",
        "topthink/think-image": "dev-master",
        "topthink/think-migration": "dev-master",
        "kosinix/grafika": "dev-master",
        "hightman/xunsearch": "*@beta",
        "riverslei/payment": "~2.0"
    },

看到riverslei/payment了是吧,那就是刚装上的。 装哪了?按惯例,装在whatever_you_like_name/vendor/目录下

想深究,自己去看。本文结束。

 

 

 

 

 

ThinkPHP5 Smarty 引擎驱动

安装方法

使用composer安装模版引擎方法:

  1. composer require zoujingli/think-smarty
复制代码

ThinkPHP5 配置文件中template参数

  1. [
  2.     // 模板引擎类型,指定为‘Smarty‘
  3.     ‘type‘         => ‘Smarty‘,
  4.     // 模板路径,默认为当前模块下的`view`目录
  5.     ‘view_path‘    => ‘‘,
  6.     // 模板后缀
  7.     ‘view_suffix‘  => ‘tpl‘,
  8.     // 模板文件名分隔符
  9.     ‘view_depr‘    => ‘.‘,
  10.     // 模板引擎普通标签开始标记
  11.     ‘tpl_begin‘    => ‘<{‘,
  12.     // 模板引擎普通标签结束标记
  13.     ‘tpl_end‘      => ‘}>‘,
  14.     // 标签库标签开始标记
  15.     ‘taglib_begin‘ => ‘{‘,
  16.     // 标签库标签结束标记
  17.     ‘taglib_end‘   => ‘}‘,
  18. ],
复制代码

那么在控制器 index/index::index 中 return view(); 时会加载模板 index/view/index.index.tpl

模板常量定义

  1. [
  2.   ‘__ROOT__‘ => ‘http://localhost/service/public‘,
  3.   ‘__SELF__‘ => ‘http://localhost/service/public/index.php/index/index.html?id=1&name=3‘,
  4.   ‘__APP__‘ => ‘http://localhost/service/public/index.php‘,
  5.   ‘__LIB__‘ => ‘http://localhost/service/public/static/plugs‘,
  6.   ‘__STATIC__‘ => ‘http://localhost/service/public/static‘,
  7.   ‘__UPLOAD__‘ => ‘http://localhost/service/public/static/upload‘,
  8. ]
复制代码

以上变量可以在模板里直接使用,自动替换成对应的路径。







以上是关于THINKPHP SMARTY 下的 switch标签无法正常显示的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP3.2.3整合smarty模板

3.ThinkPHP入门---视图

composer方式安装thinkphp5,安装smarty

thinkphp3.2.3+smarty解决success调用模板错误心得

thinkphp使用smarty模板后如何配置success和error跳转页面

Smarty模板引擎的使用