この記事の例は、ThinkPHP が自動入力して無限分類を実現する方法を示しています。これは ThinkPHP の共通機能の 1 つであり、非常に実用的です。ここで、参考のために完全な例を共有します。
ThinkPHP 無制限分類の使用
具体的な実装手順は次のとおりです (この記事では、TP フレームワークのバージョン 3.1.3 を使用します) ):
(推奨チュートリアル:thinkphp チュートリアル)
ステップ 1: aoli_cate テーブルは以下のとおりです
CREATE TABLE `fenlei` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(255) DEFAULT NULL COMMENT '父id', `pid` int(255) NOT NULL COMMENT '名字', `path` varchar(20) DEFAULT NULL,//path字段是给数据排序用 PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8; insert into fenlei(id,name,pid,path) values (1,’新闻’,0,’0’), (2,’中国新闻’,1,’0-1’),//path 最后一个数据是排序用的 (3,’美国新闻’,1,’0-1’), (4,’北京新闻’,2,’0-1-2’), (5,’华盛顿新闻’,3,’0-1-3’), (6,’日本新闻’,1,’0-1’);
ステップ 2: アクション部分
#aoli/Home/Lib/Action/CataAction.class.php ファイルは次のとおりです:
field("id,name,pid,path,concat(path,'-',id) as bpath")->order('bpath')->select(); foreach($list as $key=>$value){ //在查询获取的数组里面增加一个'count'数组; //统计bpath字段的字符串个数,并赋值给'count'数组。 $list[$key]['count']=count(explode('-',$value['bpath'])); } //展示数据 $this->assign('alist',$list); $this->display(); } //添加栏目 function add(){ //实例化CateModel类 $cate=new CateModel(); //如果从CateModel模型接受数据成功 if($vo=$cate->create()){ //执行添加 if($cate->add()){ $this->success('添加栏目成功'); }else{ $this->error('添加栏目失败'); } //dump($vo); }else{ //返回错误信息 $this->error($cate->getError()); } } } ?>
ステップ 3: モデル部分
aoli/Home/Lib/Model/CataModel.class.php ファイルは次のとおりです:
where("id=$pid")->find(); //把回调值$data赋值 $data=$list['path'].'-'.$list['id'];//子类的path为父类的path加上父类的id } //回调值 return $data; } } ?>
ステップ 4: ビュー一部を表示##
以上がThinkPHP での無制限のカテゴリの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。