教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

4.PHP框架之ThinkPHP项目CMS内容管理系统-文章内容组件管理

来源:网络收集 时间:2026-02-03
导读: thinkphp,cms,马明,CMS内容管理系统 文章内容组件管理ThinkPHP视图、关联模型 讲师:马明 thinkphp,cms,马明,CMS内容管理系统 内容组件 视图模型 关联模型 thinkphp,cms,马明,CMS内容管理系统 视图模型 定义视图模型,只需要继承ViewModel, 然后设置viewFiel

thinkphp,cms,马明,CMS内容管理系统

文章内容组件管理ThinkPHP视图、关联模型

讲师:马明

thinkphp,cms,马明,CMS内容管理系统

内容组件 视图模型 关联模型

thinkphp,cms,马明,CMS内容管理系统

视图模型 定义视图模型,只需要继承ViewModel,

然后设置viewFields属性即可。class BlogViewModel extends ViewModel{ public$viewFields= array( 'Blog'=>array('id','name','title'), 'Category'=>array('title'=>'category_name', '_on'=>'Blog.category_id=Category.id'), 'User'=>array('name'=>'username', '_on'=>'er_id=User.id'), );}

thinkphp,cms,马明,CMS内容管理系统

定义视图模型 'Blog'=>array('id','name','title') '_as'=>'myBlog' 'title'=>'category_name' '_on'=>'Blog.category_id=Category.id' '_type'=>'LEFT'

thinkphp,cms,马明,CMS内容管理系统

视图查询 $Model= D("BlogView"); $Model->field('id,name,title,category_name,useruame')-

>where('id>10')->order('id desc')->select(); $Model->field('id,name,title,categoryName,userName')>order('id desc')->group('id')->select();

thinkphp,cms,马明,CMS内容管理系统

关联模型 关联关系 一对一关联:ONE_TO_ONE,包括 HAS_ONE和 BELONGS_TO 一对多关联:ONE_TO_MANY,包括 HAS_MANY和 BELONGS_TO 多对多关联:MANY_TO_MANY

thinkphp,cms,马明,CMS内容管理系统

关联模型 关联关系必然有一个参照表,例如: 用户表、用户分组表、用户收货地址表、商品表、订单表等 每个用户都有对应的用户资料档案,所以属于HAS_ONE关联 每个用户都属于某个用户组,所以属于BELONGS_TO关联 每个用户都可以发表多篇文章,但某个文章只属于一个用户,因

此属于HAS_MANY关联 每个模块可以属于多个菜单项,一个菜单项内可以包含多个模块

,因此属于MANY_TO_MANY关联

thinkphp,cms,马明,CMS内容管理系统

关联定义

ThinkPHP可以很轻松的完成数据表的关联CURD操作,目前支持的关联关系包括下面四种: HAS_ONE、BELONGS_TO、HAS_MANY、MANY_TO_MANY。

一个模型根据业务模型的复杂程度可以同时定义多个关联,不受限制,所有的关联定义都统一在模型类的$_link成员变量里面定义,并且可以支持动态定义。要支持关联操作,模型类必须继承RelationModel类,关联定义的格式是: protected$_link= array( '关联1'=> array( '关联属性1'=> '定义', '关联属性N'=> '定义', ), '关联2'=> array( '关联属性1'=> '定义', '关联属性N'=> '定义', ), ... );

thinkphp,cms,马明,CMS内容管理系统

关联模型—HAS_ONE

HAS_ONE关联表示当前模型拥有一个子对象,例如,每个用户都有对应的用户资料档案。我们可以建立一个用户模型UserModel,并且添加如下关联定义: class UserModel extends RelationModel{ public$_link= array( 'Profile'=> HAS_ONE, );}上面是最简单的方式,表示其遵循了系统内置的数据库规范,完整的定义方式是: class UserModel extends RelationModel{ public$_link= array( 'Profile'=>array( 'mapping_type'=>HAS_ONE, 'c

lass_name'=>'Profile',//定义更多的关联属性…… ), );}

thinkphp,cms,马明,CMS内容管理系统

BELONGS_TO BELONGS_TO关联表示当前模型从属于另外一个父对象,例如每个

用户都属于一个部门。我们可以做如下关联定义。class CategoryModel extends RelationModel{ public$_link= array("Section"=> array("mapping_type"=> BELONGS_TO,"class_name"=>"Section","foreign_key"=>"sectionid","mapping_name"=>"section",//"as_fields"=>"title:section_title", ), );}

thinkphp,cms,马明,CMS内容管理系统

HAS_MANY HAS_MANY关联表示当前模型拥有多个子对象,例如每个用户有多

篇文章,我们可以这样来定义class UserModel extends RelationModel{ public$_link= array("Article"=> array("mapping_type"=> HAS_MANY,"class_name"=>"Article","foreign_key"=>"created_by","mapping_name"=>"article","mapping_order"=>"created desc",//"as_fields"=>"title,alias:art_alias", ), );}

thinkphp,cms,马明,CMS内容管理系统

MANY_TO_MANY MANY_TO_MANY关联表示当前模型可以属于多个对象,而父对象

则可能包含有多个子对象,通常两者之间需要一个中间表类约束和关联。例如每个用户可以属于多个组,每个组可以有多个用户:class UserModel extends RelationModel{ public$_link= array(“Group"=> array( 'mapping_type'=>MANY_TO_MANY, 'class_name'=>'Group', 'mapping_name'=>'groups', 'foreign_key'=>'userId', 'relation_foreign_key'=>'goupId', 'relation_table'=>'think_gourpUser') );}

thinkphp,cms,马明,CMS内容管理系统

华章培训网版权所有

…… 此处隐藏:1154字,全部文档内容请下载后查看。喜欢就下载吧 ……
4.PHP框架之ThinkPHP项目CMS内容管理系统-文章内容组件管理.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/96922.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)