2 hainan shi hainan_shi 于 2014.10.10 11:14 提问

thinkphp栏目如何实现自定义url

问题:thinkphp我现在已经设置好了栏目表和栏目所属模型表,新建了自定义标签库实现栏目名称和链接的前台输出,但是链接没有实现自定义url,也就是根据栏目所属的模型访问相应的tp控制器模板。比如:前台有 网站首页(外部链接)、公司介绍(单页模型)、新闻动态(文章模型)、产品展示(产品模型)四个栏目,放在数据库Column表里,当前台点击网站首页(外部链接)时,跳转到Column表填写的链接字段;当前台点击 公司介绍(单页模型)时,跳转到单页控制器列表List_page.html,内容页Show_page.html;当前台点击 新闻动态(文章模型)时,跳转到文章控制器列表List_article.html,内容页Show_article.html。如何实现呢?谢谢

1、自定义标签库TagLibMy.class.php

<?php
/**
 * 自定义标签库
 */
import('TagLib');

class TagLibMy extends TagLib{
    // 标签定义
    protected $tags=array(
        // 标签定义: attr 属性列表 close 是否闭合(0 或者1 默认1) alias 标签别名 level 嵌套层次
        'navlist'=>array('attr'=>'limit,order','close'=>1), //不闭合标签
        );

    //导航条标签
    public function _navlist($attr, $content) {
        $attr = $this->parseXmlAttr($attr);
        $str = <<<str
<?php

    \$_nav_m=M('Column')->order("{$attr['order']}")->where("column_status=0")->select();
    import('Class.Category', APP_PATH); 
    \$_nav_m=Category::unlimitedForLayer(\$_nav_m);

    foreach(\$_nav_m as \$_nav_v):
            extract(\$_nav_v);
            \$url = U('/list/' . \$id);
?>
str;

    $str .= $content;
    $str .='<?php endforeach;?>';
    return $str;

    }

}

?>

2、数据库
CSDN移动问答
CSDN移动问答

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!