ThinkPHP文章内容组件管理.ppt

上传人:本田雅阁 文档编号:2088637 上传时间:2019-02-12 格式:PPT 页数:13 大小:780.01KB
返回 下载 相关 举报
ThinkPHP文章内容组件管理.ppt_第1页
第1页 / 共13页
ThinkPHP文章内容组件管理.ppt_第2页
第2页 / 共13页
ThinkPHP文章内容组件管理.ppt_第3页
第3页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《ThinkPHP文章内容组件管理.ppt》由会员分享,可在线阅读,更多相关《ThinkPHP文章内容组件管理.ppt(13页珍藏版)》请在三一文库上搜索。

1、文章内容组件管理 ThinkPHP视图、关联模型,讲师:马明,内容组件,视图模型 关联模型,,视图模型,定义视图模型,只需要继承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=Blog.user_id

2、=User.id), ); ,,定义视图模型,Blog=array(id,name,title) _as=myBlog title=category_name _on=Blog.category_id=Category.id _type=LEFT,,视图查询,$Model = D(“BlogView“); $Model-field(id,name,title,category_name,useruame)-where(id10)-order(id desc)-select(); $Model-field(id,name,title,categoryName,userName)-order(id

3、 desc)-group(id)-select();,,关联模型,关联关系 一对一关联 :ONE_TO_ONE,包括HAS_ONE 和 BELONGS_TO 一对多关联 :ONE_TO_MANY,包括HAS_MANY 和 BELONGS_TO 多对多关联 :MANY_TO_MANY,,关联模型,关联关系必然有一个参照表,例如: 用户表、用户分组表、用户收货地址表、商品表、订单表等 每个用户都有对应的用户资料档案,所以属于HAS_ONE关联 每个用户都属于某个用户组,所以属于BELONGS_TO关联 每个用户都可以发表多篇文章,但某个文章只属于一个用户,因此属于HAS_MANY关联 每个模块可以

4、属于多个菜单项,一个菜单项内可以包含多个模块,因此属于MANY_TO_MANY关联,,关联定义,ThinkPHP可以很轻松的完成数据表的关联CURD操作,目前支持的关联关系包括下面四种:HAS_ONE、BELONGS_TO、HAS_MANY、MANY_TO_MANY。 一个模型根据业务模型的复杂程度可以同时定义多个关联,不受限制,所有的关联定义都统一在模型类的 $_link 成员变量里面定义,并且可以支持动态定义。要支持关联操作,模型类必须继承RelationModel类,关联定义的格式是: protected $_link = array( 关联1 = array( 关联属性1 = 定义,

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

6、Model public $_link = array( Profile=array( mapping_type =HAS_ONE, class_name =Profile, / 定义更多的关联属性 ), ); ,,BELONGS_TO,BELONGS_TO 关联表示当前模型从属于另外一个父对象,例如每个用户都属于一个部门。我们可以做如下关联定义。 class CategoryModel extends RelationModel public $_link = array( “Section“ = array( “mapping_type“ = BELONGS_TO, “class_name

7、“ = “Section“, “foreign_key“ = “sectionid“, “mapping_name“ = “section“, /“as_fields“ = “title:section_title“, ), ); ,,HAS_MANY,HAS_MANY 关联表示当前模型拥有多个子对象,例如每个用户有多篇文章,我们可以这样来定义 class UserModel extends RelationModel public $_link = array( “Article“ = array( “mapping_type“ = HAS_MANY, “class_name“ = “Art

8、icle“, “foreign_key“ = “created_by“, “mapping_name“ = “article“, “mapping_order“=“created desc“, /“as_fields“ = “title,alias:art_alias“, ), ); ,,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) ); ,,华章培训网版权所有 ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1