新手练手,欢迎吐槽<?php <br /><br>
/**<br>
* 通用自定义定义标签<br>
* 用法:<br>
* 1:载入<br>
* <taglib></taglib><br>
* 2:调用<br>
* <list><br>
* {$v.id} -- {$v.name}<br><br>
* </list><br>
* 说明:<br>
* 1.可以直接在标签上面写sql属性<br>
* 2.限制查询条数请用 limit属性<br>
* 3.要数据分页请用page属性,可传2个参数,用逗号分隔,前一个参数当前页码,后一个参数每页查询几条<br>
* 4.显示分页请在视图页面输出 {$pageStr}<br>
* 5.调用模型的方法 用 method="getOne(1,2,3)" 【引号里面直接调用方法】<br>
*/<br><br>
namespace Think\Template\TagLib;<br><br>
use Think\Template\TagLib;<br><br>
class Lx extends TagLib<br>
{<br><br>
protected $tags = array(<br>
'list' => array('attr' => 'table,order,limit,where,join,field,page,relation,method,cache,dump,sql', 'close' => 1),<br>
);<br><br>
public function _list($attr, $content)<br>
{<br>
$defaultAttr = explode(',', $this->tags['list']['attr']);<br>
$vars = array();<br>
foreach ($defaultAttr as $v) {<br>
if ($attr[$v]) {<br>
$vars[$v] = $attr[$v];<br>
}<br>
}<br>
if (!isset($vars['table']) || empty($vars['table'])) {<br>
return false;<br>
}<br>
//是用模型中的特定方法还是select<br>
if (isset($vars['method'])) {<br>
$select = '->' . $vars['method'];<br>
} else {<br>
$select = "->select()";<br>
}<br>
//limit and page<br>
$limit = '';<br><br>
if (!isset($vars['page'])) {<br>
if (isset($vars['limit'])) {<br>
$limit = '->limit("' . $vars['limit'] . '")';<br>
}<br>
} else {<br>
$limit = '->page("$page,$rows")';<br>
}<br>
//dump 调试<br>
$dump = '';<br>
if (isset($vars['dump']) && $vars['dump'] == "true") {<br>
$dump = '<?php dump($data) ?>';<br>
}<br>
//getLastSql 调试<br>
$lastSql = '';<br>
if (isset($vars['sql']) && $vars['sql'] == "true") {<br>
$lastSql = ' echo "<br>" . M()->getLastSql(); ';<br>
}<br>
unset($vars['page'], $vars['limit'], $vars['method'], $vars['dump'], $vars['sql']);<br>
$tmpStr = '';<br>
$where = '';<br>
$join = '';<br>
foreach ($vars as $k => $v) {<br>
if ($k == 'table') {<br>
continue;<br>
}<br>
if ($k == 'where') {<br>
$where = $v;<br>
}<br>
if ($k == 'join') {<br>
$join = $v;<br>
}<br>
$tmpStr .= '->' . $k . '("' . $v . '")';<br>
}<br>
$str = '<?php <br />
$page = I("p", false) ? I("p") : I("page");<br>
$page = empty($page) ? 1 : $page;<br>
$rows = I("rows", 15);<br>
$table = ' . ucfirst($vars['table']) . ';<br>
$data = D("$table")' . $tmpStr . $limit . $select . ';<br>
foreach($data as $k=>$v): ?>';<br>
$str .= $content;<br>
$str .= '<?php <br />
if(!is_array($v)){<br>
break ;<br>
}<br>
endforeach;<br>
'.$lastSql.'<br>
$total = M("$table")->where("' . $where . '")->join("' . $join . '")->count();<br>
$Page = new \Think\Page($total,$rows);<br>
$pageStr = $Page->show();<br>
?>';<br>
$str .= $dump;<br>
return $str;<br>
}<br><br><br>
}
AD:真正免费,域名+虚机+企业邮箱=0元
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号