yii中使用smart语法

模板语法

学习Smarty模板语法的最佳资源是其官方文档,您可以在www.smarty.net找到 。另外,下面还介绍了Yii特定的语法扩展。

设置对象属性

有一个称为的特殊功能set,可让您设置视图和控制器的通用属性。目前可用的属性titletheme以及layout

{set title="My Page"}
{set theme="frontend"}
{set layout="main.tpl"}

对于标题,还有一个专用块:

{title}My Page{/title}

设置元标记

可以将元标签设置如下:

{meta keywords="Yii,PHP,Smarty,framework"}

还有一个专用的块用于描述:

{description}This is my page about Smarty extension{/description}

调用对象方法

有时候你需要打电话

使用小部件作为函数和块导入静态类

您可以直接在模板中导入其他静态类:

{use class="yii\helpers\Html"}
{Html::mailto('eugenia@example.com')}

如果需要,可以设置自定义别名:

{use class="yii\helpers\Html" as="Markup"}
{Markup::mailto('eugenia@example.com')}

扩展有助于以方便的方式使用小部件,将其语法转换为函数调用或块。对于常规小部件,可以使用如下功能:

{use class='@yii\grid\GridView' type='function'}
{GridView dataProvider=$provider}

对于具有beginend方法(例如ActiveForm)的小部件,最好使用block:

{use class='yii\widgets\ActiveForm' type='block'}
{ActiveForm assign='form' id='login-form' action='/form-handler' options=['class' => 'form-horizontal']}
    {$form->field($model, 'firstName')}
    <div class="form-group">
        <div class="col-lg-offset-1 col-lg-11">
            
        </div>
    </div>
{/ActiveForm}

如果您经常使用特定的小部件,则最好在应用程序配置中对其进行声明并{use class 从模板中删除调用:

'components' => [
    'view' => [
        // ...
        'renderers' => [
            'tpl' => [
                'class' => 'yii\smarty\ViewRenderer',
                'widgets' => [
                    'blocks' => [
                        'ActiveForm' => '\yii\widgets\ActiveForm',
                    ],
                ],
            ],
        ],
    ],
],

引用其他模板

includeextends语句中引用模板的方式主要有两种:

{include 'comment.tpl'}
{extends 'post.tpl'}

{include '@app/views/snippets/avatar.tpl'}
{extends '@app/views/layouts/2columns.tpl'}

在第一种情况下,将相对于当前模板路径搜索视图。对于comment.tplpost.tpl 这意味着将在与当前渲染的模板相同的目录中搜索这些文件。

在第二种情况下,我们使用路径别名。@app默认情况下,所有Yii别名(例如)都可用。

CSS,JavaScript和资产捆绑

为了注册JavaScript和CSS文件,可以使用以下语法:

{registerJsFile url='http://maps.google.com/maps/api/js?sensor=false' position='POS_END'}
{registerCssFile url='@assets/css/normalizer.css'}

如果直接在模板中需要JavaScript和CSS,则有一些方便的块:

{registerJs key='show' position='POS_LOAD'}
    $("span.show").replaceWith('<div class="show">');
{/registerJs}

{registerCss}
div.header {
    background-color: #3366bd;
    color: white;
}
{/registerCss}

资产捆绑包可以通过以下方式注册:

{use class="yii\web\JqueryAsset"}
{JqueryAsset::register($this)|void}

这里我们使用void修饰符,因为我们不需要方法调用结果。

网址

您可以使用两个函数来构建URL:

<a href="http://%7Bpath%20route='blog/view'%20alias=%24post.alias%7D" target="_blank">{$post.title}</a>
<a href="http://%7Burl%20route='blog/view'%20alias=%24post.alias%7D" target="_blank">{$post.title}</a>

path生成相对URL,而url生成绝对URL 。内部都使用\ yii \ helpers \ Url。

附加变量

在Smarty模板中,始终定义以下变量:

  • $app,等于 \Yii::$app
  • $this,等于当前View对象

访问配置参数

可以通过Yii::$app->params->something以下方式使用应用程序中可用的Yii参数:

`{#something#}`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

店滴开源框架

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值