dreamstar99

1.变量输出

参考http://document.thinkphp.cn/manual_3_2.html#var_output
字符串变量
在控制器中给变量赋值

$name = \'ThinkPHP\';
$this->assign(\'name\',$name);
$this->display();

在模板中使用

//{和$之间不能有任何的空格,否则标签无效
Hello,{$name}!

数组变量
在控制器中给变量赋值

$data[\'name\'] = \'ThinkPHP\';
$data[\'email\'] = \'thinkphp@qq.com\';
$this->assign(\'data\',$data);

在模板中使用

Name:{$data[\'name\']}
Email:{$data[\'email\']}
Name:{$data.name}
Email:{$data.email}
<notempty name="data.name">
     {$data.name}
   <else />暂无
</notempty> <br />

data变量是一个对象(并且包含有name和email两个属性)

在模板中使用

Name:{$data:name}
Email:{$data:email}

Name:{$data->name}
Email:{$data->email}

实例:

从数据库中拿到数据,在控制器(服务器层)把数据转为树,返回给模板(视图)
控制层

 //读取仓库数据,返回一个集合
 $warehouseList = D(\'Warehouse\')->field(\'id,name\')->select();
 //集合转为数组
 $warehousesoptions= array_column($warehouseList,\'name\',\'id\');
 //把数组转为select: id为$warehouseid选项为选中状态
 $warehousesoptions = option_selected($warehousesoptions,$warehouseid)
 //传到前台(View)
 $this->assign(\'warehousesoptions\',$warehousesoptions );
/**
 * 数组生成selected选项
 * @param array $option array($k => $v);
 * @param string $selected 默认值
 * @return mixed|string
 */
function option_selected($option,$selected=\'\')
{
    $_option = \'\';

    if (is_array($option))
    {
        foreach ($option as $k => $v)
        {
            $_option .= \'<option value="\'.$k.\'">\'.$v.\'</option>\';
        }
    }
    else
    {
        $_option = $option;
    }
    $_option = preg_replace(\'/value="\'.$selected.\'"/si\',\'value="\'.$selected.\'" selected="selected"\',$_option);

    return $_option;
}

视图层(View)

<select name="warehouseid" id="warehouseid" >
    <option value="">请选择</option>
    {$warehousesoptions}
</select>

2.内置标签

参考http://document.thinkphp.cn/manual_3_2.html#volist

分类:

技术点:

相关文章: