资源描述:
《thinkphp文章内容组件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、文章内容组件管理ThinkPHP视图、关联模型讲师:马明内容组件视图模型关联模型www.hztraining.com视图模型定义视图模型,只需要继承ViewModel,然后设置viewFields属性即可。class BlogViewModel extends ViewModel {public$viewFields = array('Blog'=>array('id','name','title'),'Category'=>array('title'=>'category_name','_on'=
2、>'Blog.category_id=Category.id'),'User'=>array('name'=>'username','_on'=>'Blog.user_id=User.id'),);}www.hztraining.com定义视图模型'Blog'=>array('id','name','title')'_as'=>'myBlog''title'=>'category_name''_on'=>'Blog.category_id=Category.id''_type'=>'LEFT'www
3、.hztraining.com视图查询$Model = D("BlogView");$Model->field('id,name,title,category_name,useruame')->where('id>10')->order('iddesc')->select();$Model->field('id,name,title,categoryName,userName')->order('iddesc')->group('id')->select();www.hztraining.com关联
4、模型关联关系一对一关联:ONE_TO_ONE,包括HAS_ONE和BELONGS_TO一对多关联:ONE_TO_MANY,包括HAS_MANY和BELONGS_TO多对多关联:MANY_TO_MANYwww.hztraining.com关联模型关联关系必然有一个参照表,例如:用户表、用户分组表、用户收货地址表、商品表、订单表等每个用户都有对应的用户资料档案,所以属于HAS_ONE关联每个用户都属于某个用户组,所以属于BELONGS_TO关联每个用户都可以发表多篇文章,但某个文章只属于一个用户,因此属
5、于HAS_MANY关联每个模块可以属于多个菜单项,一个菜单项内可以包含多个模块,因此属于MANY_TO_MANY关联www.hztraining.com关联定义ThinkPHP可以很轻松的完成数据表的关联CURD操作,目前支持的关联关系包括下面四种:HAS_ONE、BELONGS_TO、HAS_MANY、MANY_TO_MANY。一个模型根据业务模型的复杂程度可以同时定义多个关联,不受限制,所有的关联定义都统一在模型类的$_link成员变量里面定义,并且可以支持动态定义。要支持关联操作,模型类必须继
6、承RelationModel类,关联定义的格式是:protected$_link=array('关联1' => array('关联属性1'=>'定义','关联属性N'=>'定义',),'关联2' => array('关联属性1'=>'定义','关联属性N'=>'定义',),...);www.hztraining.com关联模型—HAS_ONEHAS_ONE关联表示当前模型拥有一个子对象,例如,每个用户都有对应的用户资料档案。我们可以建立一个用户模型UserModel,并且添加如下关联定义:class
7、 UserModel extends RelationModel{public$_link=array('Profile'=>HAS_ONE,);}上面是最简单的方式,表示其遵循了系统内置的数据库规范,完整的定义方式是:class UserModel extends RelationModel{public$_link=array('Profile'=>array('mapping_type' =>HAS_ONE,'class_name' =>'Profile',//定义更多的关联属性……
8、),);}www.hztraining.comBELONGS_TOBELONGS_TO关联表示当前模型从属于另外一个父对象,例如每个用户都属于一个部门。我们可以做如下关联定义。classCategoryModelextendsRelationModel{public$_link=array("Section"=>array("mapping_type"=>BELONGS_TO,"class_name"=>"Section","foreign_key"=>"sectio